Java语言简介
Java语言发展史
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling)
Java语言发展时间线
- 1995年5月,5月23日,Sun公司在Sun world会议上正式发布Java,Java语言诞生
- 1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0)
- 1997年2月,JDK 1.1面世
- 1998年12月8日,第二代Java平台的企业版J2EE发布
- 1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。
- 1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。
- 2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布
- 2001年9月24日,J2EE1.3发布
- 2002年2月,J2SE1.4发布,自此Java的计算能力有了大幅提升,与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。
- 2004年,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
- 2005年,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
- 2009年,Oracle甲骨文公司宣布收购Sun公司
- 2011年,Oracle公司发布Java SE 7
- 2014年,Oracle公司发布Java SE 8
- 2017年,Oracle公司发布Java SE 9,并宣布,他们将Java的发布频率改为每六个月一次
- 2018年,Oracle公司发布Java SE 10、11(LTS 版本)
- 2019年,Oracle公司发布Java SE 12、13
- 2020年,Oracle公司发布Java SE 14、15(预测是20年9月)
Java语言跨平台原理
什么是平台?
我们把CPU处理器与操作系统的这种软硬件的结合体称为平台,因为现在主流的操作系统都支持主流的CPU,所以有时也会把操作系统称之为平台(CPU中存在一套用来计算和控制计算机系统的指令集合,每种cpu都有其特定的指令集)
Java与C语言编译过程比较
C编译过程:
C语言是编译执行的,编译器与平台相关,使用特定编译器编译的程序只能在对应的平台运行,编译后的可执行文件也是与平台相关的。
Java跨平台:
Java实现跨平台无非就是JVM起的作用:
Java 源代码首先会被编译为字节码文件(.class),但并非是机器语言,而是需要在 JVM 上运行,而 .class 文件在 JVM 上是解释执行的。所以 Java 兼具编译型语言和解释型语言的特点,它既有编译的过程,也有解释的过程(理解它的过程就行了,不必下一个“精确”的定义)。正因为Java对于不同的操作系统有着不同的JVM,所以实现了真正意义上的跨平台(一次编译,到处运行)。
总结
Java通过提供不同系统、版本、位数的JVM (Java Virtual Machine),来屏蔽不同的系统指令集差异,如果系统需要部署到不同平台时,只需要在系统上安装对应版本的JVM即可,所以Java程序可以在任意操作系统上运行。
JVM、JRE和JDK
JVM(Java Virtual Machine):
Java虚拟机,它是Java跨平台实现的最核心的部分,所有的Java程序首先被编译成*.class字节码文件,这种文件可以在JVM上执行,JVM在执行字节码文件时,把其翻译成具体平台上的机器指令执行(一次编译,到处运行)。
JRE(Java Runtime Environment):
是Java程序的运行时环境,包含 JVM 和运行时所需要的核心类库。
运行一个Java程序的最小环境为 JRE。
JDK(Java Development Kit):
是Java程序开发工具包,包括了JRE、Java工具和Java基础类库
Java工具如:编译工具(javac.exe)和运行工具(java.exe)等。
基础类库如:rt.jar
开发一个Java程序的最小环境为JDK。
三者关系图:
JDK的下载和安装
通过官方平台下载:
https://www.oracle.com/index.html
https://www.oracle.com/java/technologies/javase-downloads.html