本博客参考《深入理解Java虚拟机》(第二版)一书,提取重点知识,再加以个人的理解编写而成。转载请标明来源。
JVM划重点 第一章 走近Java
概述
- Java不仅是一门编程语言,还是一系列计算机软件和规范形成的技术体系,这个体系提供了完整的用于软件开发和跨平台部署的支持环境
- 数十亿台设备使用Java,包括个人计算机,移动电话,以及其他智能设备等。
- 优点:摆脱硬件平台束缚,“一次编写,到处运行”;相对安全的内存管理和访问机制,避免大部分内存泄露和指针越界问题;实现了热点代码检测和运行时编译及优化;有一套完整的应用程序接口;丰富的第三方类库。
Java技术体系
- Sun官方定义的Java技术体系:
- Java程序语言设计
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 第三方Java类库
- 我们把Java程序设计语言、Java虚拟机、Java API类库三部分成为JDK(Java Development Kit) ,JDK是用于支持Java程序开发的最小环境。
- 我们把Java API类库中的Java SE API子集和Java虚拟机两部分统称为JRE(Java Runtime Environment),是支持Java程序运行的标准环境。
- 按照Java技术关注的重点业务领域划分,可分为四个平台:
- Java Card:支持Java小程序(Applets)运行在小内存设备上(智能卡)的平台。
- Java ME:支持Java程序运行在移动终端(手机,PAD)上的平台。对Java API有所精简,并加入了对移动终端的支持。
- Java SE:支持面向桌面级应用的Java平台。提供了完整的Java核心API。
- Java EE:支持使用多层架构的企业应用的Java平台,除了提供Java EE外,还对其做了大量扩充(一般以javax作为包名)并提供了相关部署支持。
展望Java技术的未来
- 模块化:不希望为一个小功能下载、安装、维护庞大的系统。
- 混合语言:基于Java虚拟机的语言越来越多,各自针对各自擅长的方面解决问题。同一个项目中不同层使用不同的编程语言完成,且接口对每一层的开发者透明,各种语言之间交互不存在困难,就像使用自己语言的原生API一样,因为它们最终运行在一个虚拟机上。
- 多核并行:fork/join模式是处理并行编程的经典方法,在此模式的使用范围内,能够利用多个CPU核心提供的计算资源来协作完成一个复杂的计算任务;Lambda支持,改善Java语言不善函数式编程,函数式编程天然适合并行运算。
- 进一步丰富语法
- 64位虚拟机:提高64位Java虚拟机的性能