天天看点

【JVM】第一章 走近java

第一章 走近java

1、 TIOBE发布的编程语言排行榜,可见java语言的使用者一直都是遥遥领先,2017年、2018年都排名第一位。

当然上面我们也可以看到其他一些语言的流行趋势,每种语言都有它擅长的领域。语言没有好坏之分,只有是否更加适合你的应用场景。

【JVM】第一章 走近java

2、java语言的优点:

1)它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想。(因为jvm的应用)

2)它提供了一个相对安全的内存管理和访问机制。(区别与C\c++)

3) 它实现了热点代码的检测和运行时编译及优化(JIT及时编译的应用)

4)它有一套完善的应用程序接口,拥抱开源

3、jdk \ jre的区别

JDK: java development kit 的缩写java开发环境。java程序开发的工具包.(java程序设计语言、工具集及api、jre)

JRE: java runtime environment 的缩写,java的运行环境。(jvm 、Java SE API)

【JVM】第一章 走近java

我们开发的时候只需要安装一个jdk就可以了。目前流行的jdk版本是jdk1.8

Java SE 与Java EE的区别:Java EE 支持web开发。

4、jdk版本发展史

https://baike.baidu.com/item/jdk/1011?fr=aladdin

【JVM】第一章 走近java

jdk 1.0:

Java 虚拟机、Applet 、AWT(抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口)等

jdk 1.1:

技术代表:JAR文件格式、JDBC、JavaBeans、RMI

语法:内部类、反射

jdk1.2:

jvm中第一次内置了JIT、出现了Collections集合类

jdk1.4:

正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等

jdk1.5:

自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach)

提供了java.util.concurrent并发包

jdk1.6:

提供动态语言支持、提供编译API和微型HTTP服务器API

jvm改进,包括锁与同步、垃圾收集、类加载等方面的算法

jdk.17:

G1收集器

jdk1.8:

Lambda表达式

5、java虚拟机发展史

1)Sun Classic / Exact VM

jdk1.0的虚拟机,只能使用纯解释器方式来执行java代码。如果要使用JIT就得用外挂,并且解释器与编译器不能配合工作,只能选择一种

2)Sun HotSpot VM

准备式内存管理

热点代码探测技术:通过执行计数器找到最具有编译的代码,然后通过JIT编译器以方法为单位进行编译。如果一个循环调用次数过多也会触发JIT编译。

3)BEA JRockit / IBM J9 VM

JRockit 普号称“世界上速度最快的Java虚拟机”。为什么?因为它内部没有解析器全部代码都靠编译器编译执行。

J9:开发目的是作为IBM公司各java产品的执行平台。搭配在IBM ALX和z/OS这些平台上部署的java应用