概述
优点:
- 它摆脱了硬件平台的束缚,实现了“一次编写,到处运行“的理想;
- 它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界;
- 它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能;
- 它有一套完整的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能;
Java技术体系
Sun官方定义的Java技术体系组成部分:
- Java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API 类库
- 来自商业机构和开源社区的第三方Java类库
JDK(Java Development Kit): 包含Java程序设计语言,Java虚拟机,JavaAPI类库。jdk是用于支持Java程序开发的最小环境。
JRE(Java Runtime Environment): 包含JavaAPI中的JavaSE API子集和Java虚拟机。jre 是支持Java程序运行的标准环境。
如果按照技术所服务的领域来划分,Java技术体系可以分为4个平台:
- Java Card: 支持一些Java小程序(Applets)运行在小内存设备上的平台;
- Java ME(Micro Edition):支持Java程序运行在移动端上的平台,对JavaAPI有所精简,并加入了针对移动端的支持,这个版本以前称为j2ME
- java SE (Standard Edition) : 支持面向桌面级应用的Java平台,提供完成的Java核心API,这个版本以前称为j2SE.
- Java EE(Enterprise Edition): 支持使用多层架构的企业应用(ERP,CRM)的Java平台,除了提供提供JavaSE API之外,还对其做了大量的扩充并提供相关的部署支持,这个版本以前称为J2EE。
Java发展史
Java虚拟机发展史
Java虚拟机家族的发展轨迹和历史变迁
- Sun Classic (世界上第一款商用java虚拟机), 只能使用纯解释器方式(可以外挂JIT编译器)
- Exact VM 已具备现代高性能虚拟机的雏形:两级即时编译器、编译器与解释器混合工作模式等。使用准确式内存管理,即知道内存中某些位置的数据具体是什么类型(支持GC垃圾回收集)
- Sun HotSpot VM : 热点代码探测技术,准确式GC, JIT 编译器和混合运行模式
- Sun Mobile-Embedded VM / Meta-Circular VM : sun公司面对移动和嵌入式时长,也发布过虚拟机产品,。。。。。
- BEA JRockit: 专门为服务器硬件和服务器端应用场景高度优化的得虚拟机。
- IBM j9 VM
- 。。。。。。
展望Java技术的未来
- 模块化
- 混合语言(语言不相关,Class文件格式)
- 多核并行(Fork/join模式是处理并行变成的一个经典方法)(lamdba函数式编程)
- 进一步丰富语法
- 64位虚拟机