sun官方定义的java技术体系
- java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 来自商业机构和开源社区的第三方Java类库
JDK:Java Develement Kit--支持java程序开发的最小环境
- Java程序设计语言
- Java虚拟机
- Java API类库
JRE:Java Runtime Environment
- Java虚拟机
- Java API类库中的Java SE API子集
按技术服务领域或Java技术关注的重点业务领域划分Java技术体系
- Java Card:支持一些Java小程序(Applets)运行在小内存设备上(如智能卡)的平台
- Java ME(Micro Editon):支持Java程序运行在移动终端(手机、PDA)上的平台
- 对Java API有所精简,并加入了针对移动终端的支持
- 以前称为J2ME
- Java SE(Standard Editon):支持面向桌面级应用(如windows下的应用程序)的Java平台,提供了完整的Java核心API
- 以前称做J2SE
4 . Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、CRM应用)的Java平台
- 提供Java SE API
- 还做了大量的扩充并提供了相关的部署支持
- 这些扩展一般以
javax.*
作为包名,而以java.*
为包名的包都是Java SE API的核心包,但由于历史原因,一部分曾经是扩展包的API后来进入了核心包,因此核心包中也包含了不少javax.*
的包名 - 以前称为J2EE
Java发展历程
-
Oak(橡树):一种在各种消费性电子产品上运行的程序架构(不成功)
-
Java:互联网的出现,Oak迅速找到最适合自己的市场定位蜕变为Java
-
JDK 1.0
- Write Once, Run Anywhere
- 纯解释执行的Java虚拟机实现(Sun Classic VM)
-
JDK 1.2
- Java技术体系拆分为:J2ME, J2SE, J2EE
- Java虚拟机内置JIT(Just In Time)编译器,HotSpot和Exact虚拟机内置JIT编译器,Sun Classic VM以外挂的形式使用JIT编译器
-
JDK 1.5
- 改变非常大
- 自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach)等
- 改进Java内存模型(Java Memory Model,JMM)
- 提供了
java.util.concurrent
并发包
-
JDK 1.6
- 启用Java SE 6 Java EE 6,Java ME 6命名方式
- 对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法
-
JDK 1.7 (Oracle收购Sun)
- G1(GarbageFirst)垃圾收集器
- Oracle开始支持mac OS X操作系统
-
JDK 1.8
- Lambda表达式
JDK从1.5开始,使用JDK5/JDK6命名
Java virutal machine
- Sun Classic VM
第一款商用Java虚拟机
纯解释器方式
要使用JIT(Just In Time)编译器,必须进行外挂
如果外挂了JIT,JIT完全接管了虚拟机的执行系统,解释器不在工作 - Exact VM
执行系统具备现代高性能虚拟机的雏形
两级JIT、编译器与解释器混合工作
准确的内存管理(Exact Memory Management),即虚拟机知道内存中某个位置的数据具体是什么类型
- HotSpot
Sun JDK 和OpenJDK中自带虚拟机
目前使用范围最广
- Longview Technologies公司设计,Sun收购该公司后获得
- 准确内存管理
(Exact Memory Management)
- 热点代码探测技术:通过执行计数器找出最具有编译价值的代码,通知JIT以方法为单位进行编译
- 通过编译器和解释器的恰当协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡
- 无须等待本地代码(编译结果)输出才能执行程序,及时编译的时间压力也相对减小,助于引入更多的代码优化技术,输出质量更高的本地代码
网友评论