本文中提到的一些技术点会在之后继续更详细地更新
Java技术体系组成部分:
Java程序设计语言
各种硬件平台上的Java虚拟机实现
Class文件格式
Java类库API
来自商业机构和开源社区的第三方Java类库
JDK:Java程序设计语言、Java虚拟机、Java类库 支持Java程序开发的最小环境
JRE:JavaSE API子集、Java虚拟机 支持Java程序运行的标准环境
Java ME:支持Java程序运行在移动终端上的平台(安卓不属于)
Java SE:支持面向桌面级应用的平台(JDK6前曾被成为J2SE)
Java EE:支持使用多层架构的企业应用平台
JDK版本主要改动(时间轴)
1.0:Java虚拟机 Applet AWT
1.1:JDBC JAR文件格式 JavaBeans RMI(远程方法调用,RPC为远程过程调用) 支持内部类和反射
1.2:
Sun将Java体系拆分为三个方向
Java Plug-in Swing等出现
Java虚拟机内置了JIT即时编译器
添加了strictfp关键字 添加了一系列Collections集合类等
1.3:
数学运算类库 Timer API
JNDI作为平台级服务提供
使用CORBAIIOP来实现RMI通信协议
Java 2D API添加了JavaSound类库
1.4(标志着Java真正走向成熟):
正则表达式 异常链 NIO 日志类 XML解析器 XSLT转换器等等
5(放弃1.X的版本命名方式,修改为了JDK X):
在Java语法易用性上做出了非常大的改进,如:自动装箱 泛型 动态注解 枚举 可变长参数 遍历循环等语法特性
改进了内存模型JMM
提供了java.util.concurrent并发包
官方声明可以支持Windows 9x操作系统的最后一个JDK版本
6:
停止了J2EE J2SE J2ME命名方式,启用Java EE 6 Java SE 6 Java ME 6来代替
提供初步的动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)
提供编译器注解处理器
提供微型HTTP服务器API
对虚拟机内部做了大量改进:锁与同步 垃圾收集 类加载等方面的实现
2006年11月13日Sun宣布计划将Java开源
7(Sun被Oracle收购,裁剪了7的预订目标):
提供新的G1收集器
加强对非Java语言的调用支持
可并行的类加载架构
Java SE核心功能正式开始为Mac OS X提供支持,之后的更新中达到所有功能完全兼容
对ARM指令集架构提供支持
支持Windows XP的最后一个版本
8(启用JEP来定义和管理纳入新版JDK的功能特性):
对lambda表达式的支持,让Java有了流畅的函数式表达能力
内置Nashorn JavaScript引擎的支持
新的时间、日期API
彻底移除HotSpot的永久代
9:
Jigsaw:虚拟机层面的模块化支持
JS Shell JLink JHSDB等
整顿了Hotspot日志系统
支持HTTP 2客户单API等91个JEP
10(主要是内部重构):
统一源仓库、垃圾收集器接口、即时编译器接口
11:
ZGC垃圾收集器
类型判断加入lambda语法
12:
Switch表达式
Java微测试套件(JMH)
Shenandoah垃圾收集器