声明:本文及之后的"《深入理解java虚拟机》学习笔记"系列文章以周志明先生编著的《深入理解java虚拟机》第2版为主要依据,结合自身理解与实践,以及其他辅助参考资料进行撰写。本系列文章性质为“学习笔记”,并非java教程,因此文中难免出现个人理解上的错误,还望多多理解和指正。此外,需要提醒的是,阅读本系列学习笔记需要一定的java基础。好了,言归正传,让我们进入主题吧~
1 java的优点
(1)跨平台,“一次编写,到处运行”;
(2)功能强大,小到智能卡,大到移动终端应用、桌面应用,甚至是大型服务器,java都hold住;
(3)相对安全的内存管理和访问机制,提供高效的内存回收机制,且没有C语言中的指针操作,避免了绝大多数的内存泄漏和指针越界问题;
(4)热点代码检测和运行时编译及优化,这意味着java程序的性能会随着运行时间的增加而提高,但这并不意味着java程序的性能可以无限提高;
(5)拥有无数来自商业机构和开源社区实现的第三方类库,只要你需要,几乎做任何事情的jar包你都能找到;
……
2 java技术体系
(1)Sun公司(现已被Oracle公司收购)官方所定义的java技术体系的组成:
①java程序设计语言
②java虚拟机
③Class文件格式
④java API类库
⑤来自商业机构和开源社区实现的第三方java类库
(2)JDK(Java Development Kit)的组成:
①java程序设计语言
②java虚拟机
③java API类库
注:JDK是支持java程序开发的最小环境
(3)JRE(Java Runtime Environment)的组成:
①java API类库中的子集java SE API
②java虚拟机
注:JRE是java程序运行的标准环境
(4)分类(按照java服务的领域进行划分):
①java Card:支持java小程序(Applets)运行在小内存设备(如智能卡)上的平台;
②java ME(Micro Edition):支持java程序运行在移动终端(如智能手机、pad)上的平台,对java API有所精简,加入了对移动终端的支持;
③java SE(Standard Edition):支持面向桌面级应用(如windows应用)的java平台,提供了完整的java核心API;
④java EE(Enterprise Edition):支持企业级应用(如ERP应用)的java平台,除了提供java SE API之外,还对其进行了大量补充,并提供了相关的部署支持。
3 java发展时间轴(1995年5月23日~?):
4 java虚拟机
最早的java虚拟机是1996年初Sun公司发布JDK1.0中包含的Classic VM。后来出现了Exact VM(发布于Solaris操作系统),但很快被当下主流java虚拟机HotSpot VM所替代。