第一章 走近java
1、 TIOBE发布的编程语言排行榜,可见java语言的使用者一直都是遥遥领先,2017年、2018年都排名第一位。
当然上面我们也可以看到其他一些语言的流行趋势,每种语言都有它擅长的领域。语言没有好坏之分,只有是否更加适合你的应用场景。
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)
我们开发的时候只需要安装一个jdk就可以了。目前流行的jdk版本是jdk1.8
Java SE 与Java EE的区别:Java EE 支持web开发。
4、jdk版本发展史
https://baike.baidu.com/item/jdk/1011?fr=aladdin
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应用