Java帝国的诞生

C & C

  • 1972年C诞生
  • 贴近硬件,运行极快,效率较高
  • 操作系统,编译器,数据库,网络系统等
  • 指针和内存管理 --两把沉重的枷锁

 

  • 1982年C++诞生 --非常复杂,不好学,涉及到很多计算机底层的东西
  • 面向对象
  • 兼容C
  • 图形领域、游戏等

 

 

反抗

要建立一个新的语言

  • 语法有点像C
  • 没有指针
  • 没有内存管理
  • 真正的可移植性,编写一次,到处运行
  • 面向对象
  • 类型安全
  • 高质量的类库
  • ......

一开始命名为C++--,理念是在C++的基础上进行了优化,后来根据门口的橡树命名为oak,但是oak被别人使用了,后来改为Java;

为了实现真正的跨平台,在每个操作系统之上,又增加了一个抽象层,叫Java虚拟机,统称JVM,只要装了这个环境,Java代码在任何操作系统上都能跑。

 

 

Java初生

  • 1995年,开发图形界面程序Applet,让网页变得生动,Java火了
  • C语言程序员迅速加入Java领域

 

  • Java 2 标准版(J2SE):去占领桌面
  • Java 2 移动版(J2ME):去占领手机
  • Java 2 企业版(J2EE):去占领服务器 -->weblogic

 

  • 大量巨头的加入

 

三高问题:高可用、高性能、高并发

 

 

Java发展

  • 它们基于Java开发了巨多的平台,系统,工具
  • 构建工具:Ant、Maven、Jekins
  • 应用服务器:Tomcat、Jetty、Jboss、Websphere(IBM开发)、weblogic
  • Web开发:Structs、Spring、Hibernate、myBatis
  • 开发工具:Eclipse(IBM开发)、Netbean、intellij idea、Jbuilder
  • ......

看着服务器端市场被Java王国占领,微软推出.NET来对抗,微软的系统是封闭的,所有的软件都是自家的,开发工具Visual Studio,应用服务器IIS,数据库SQL Serve,只要用了.NET,几乎就绑定了微软,而且微软的系统只能运行在Windows服务器上,Windows服务器在高端市场占有率太低了。

Ruby诞生,对标Java,但并没有对Java产生威胁,用Ruby搭建大型商业系统非常少见。

除了Ruby,还有PHP、Python等,这些都适合快速开发不太复杂的Web系统,但是大型的Web系统,都是非常复杂的,只有Java能做到。

  • 2006:Hadoop(大数据领域)
    Java入侵大数据领域,熟悉分布式文件管理系统(MapReduce),很快就能编写处理海量数据的程序。
  • 2008:Android(手机端)
    运行在Android之上的,正是Java

 

一个伟大的帝国诞生了

 

 

Java特性和优势

  • 简单性 --C++语法纯净版,没有头文件,没有指针运算,也不用分配内存
  • 面向对象 --是一种程序设计技术,将重点放在对象以及对象之间的接口上,模拟的是人的思维去写程序,学习非常的快
  • 可移植性 --跨平台性,Write Once, Run Anywhere!
  • 高性能
  • 分布式
  • 动态性 --反射机制,让Java具有动态性
  • 多线程
  • 安全性
  • 健壮性 --程序不会崩溃,异常机制

 

 

Java三大版本

  • Write Once, Run Anywhere --JVM,Java虚拟机,可以跑在所有的平台上,所以Java可以实现跨平台

 

  • JavaSE:标准版(桌面程序,控制台开发...) --整个Java的基础和核心
  • JavaME:嵌入式开发(手机,小家电...) --相当于Java的微缩版本,但目前基本没人用了
  • JavaEE:企业级开发(web端,服务器开发...) --提供了很多企业级开发完整的解决方案

 

 

 

JDK JRE JVM

  • JDK:Java Development Kit(Java开发者工具),包含JDK和JVM,除此之外,还包含很多自己的工具用于程序开发,比如javac、java用来编译、运行Java程序的,javados可以生成一篇文档,jar可以把java程序打包成一个应用。
  • JRE:Java Runtime Environment(Java运行时环境),包含了JVM,Applet等;JDK就是在JRE基础上扩充了一些开发工具;只要安装JRE,就可以运行java程序了,但是如果要开发,就要安装JDK。
  • JVM:Java虚拟机,相当于在所有的操作系统上模拟了一个小巧的CPU,去处理Java相关的东西,Java以此实现跨平台。
     

Java学习笔记2 - Java入门_跨平台

 

 

 

搭建开发环境

  • 现在更新到JDK16了,但是高版本在企业中用的并不是很多,每次更新只是增加了一些新特性
  • 企业中用得最多的是JDK7和JDK8,主流是JDK8

 

卸载JDK的方法

  1. 删除Java安装目录(路径可在环境变量JAVA_HOME下查找)
  2. 删除JAVA_HOME
  3. 删除Path下和Java相关的变量
  4. java -version查看一下

 

安装JDK

  1. 百度搜索JDK8,找到下载地址
  2. 同意协议
  3. 下载电脑对应版本
  4. 双击安装JDK
  5. 记住安装的路径
  6. 配置环境变量
  1. 我的电脑-->右键-->属性
  2. 环境变量-->在系统变量新建JAVA_HOME,路径填刚才的安装目录 --一定要保证变量名是JAVA_HOME,因为以后很多环境要求是这个名字
  3. 配置path变量:%JAVA_HOME%\bin,%JAVA_HOME%\jre\bin
  1. 测试JDK是否安装成功
  1. 打开CMD
  2. java -version

 

 

Helloworld详解

  1. 随便建一个文件夹,存放代码
  2. 新建一个java文件
  • 文件后缀名为.java
  • Hello.java
  • 【注意点】系统可能没有显示文件后缀,需要手动打开
  1. 编写代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}


  1. 编译:javac java文件,会生成一个class文件
  2. 运行class文件:java class文件(不加后缀)

 

 

可能遇到的情况

  1. 每个单词的大小写不能出问题,Java是大小写敏感的
  2. 尽量使用英文
  3. 文件名和类名必须保证一致,且首字母习惯大写
  4. 使用了中文符号

 

 

Java程序运行机制

  • 编译型
  • 解释型

编译和解释都有“翻译”的意思,它们的区别在于时机不同:

编译型:把整个代码转换成计算机可以执行的代码 complile,负责编译的程序就叫'编译器';编译后的代码执行起来比较快。

解释型:执行哪里就翻译哪里,如果回头再执行,就再翻译,对性能有一定损失。

  • 程序运行机制

Java学习笔记2 - Java入门_java_02

Java语言既有编译型语言的特征,又有解释型语言的特征

  1. java源文件通过Java编译器变成class文件,class文件再去被解释执行,可以理解为Java文件在执行前经过了一次“预编译”,生成的代码是介于机器码和Java源代码之间的一种程序,叫做字节码文件
  2. 字节码文件运行时,会到JVM虚拟机
  3. 字节码校验器就是检查代码写得对不对
  4. 解释器就是逐条翻译运行

 

 

 

IDEA介绍

  • IDE:集成开发环境
  1. 能编写代码
  2. 及时查错,方便调试
  3. 还有很多其他功能
  • IEDA:一般指IntelliJ IDEA,IDE的一种
    psvm /main、sout
  • Eclipse也是一种IDE