世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
Java的优点:
(1)依次编写,多处运行
(2)提供了相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题
(3)实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加获得更高的性能
(4)有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能
Java技术体系:
(1)Java程序设计语言
(2)各种硬件平台上的Java虚拟机
(3)Class文件格式
(4)Java API类库
(5)来自商业机构和开源社区的第三方Java类库
Java虚拟机发展:
(1)Sun Classic VM:第一款商用Java虚拟机,只能使用纯解释器方式来执行Java代码,外挂JIT编译器后,JIT将完全接管虚拟机的执行系统,解释器便不会再工作了
(2)Exact VM:JDK1.2时,曾在Solaris平台上发不过一款名为Exact VM的虚拟机
(3)HotSpot VM:在JDK1.2是,Classic VM与HotSpot VM并存,但是默认使用Classic VM,而在JDK1.3时,HotSpot VM是默认虚拟机,Classic VM备用,直到JDK1.4 Classic VM才完全退出商用虚拟机的历史舞台,与Exact VM一起进入了Sun Labs Research VM中。
高性能Java虚拟机一般指Sun HotSpot、BEA JRockit、 IBM J9 VM,JRockit VM曾经号称“世界上速度最快的Java虚拟机”,是一款专门为服务器硬件和服务器端应用场景高度优化的袭击,由于专注于服务器端应用,它不太关注程序启动速度,因此JRockit内部不包含解析器的实现,全部代码都靠即时编译器表以后执行,同时JRockit的垃圾收集器和MissionControl服务套件等部分实现,都是领先地位;其实Azul VM和BEA Liquid VM这类特定硬件平台转悠的虚拟机才是“高性能”虚拟机。
展望Java技术的未来:
(1)模块化
未来的Java平台中,很可能会对模块化提出语法层面的支持
(2)混合语言
当单一的Java开发已经无法瞒住当前软件复杂需求时,越来越多基于Java虚拟机的语言开发被应用到软件项目中,如:Scala、Groovy、Clojure、JRuby/Rails
(3)多核并行
早在JDK1.5就已经引入java.util.concurrent包实现了一个粗粒度的并发框架,而在JDK1.7中加入了java.util.concurrent.forkjoin包是对这个框架的一次重要扩充。
(4)进一步丰富语法
java 5曾对Java语法进行了一次扩充,加入了自动装箱、泛型、动态注解、枚举、可变长参数、for-each遍历等
(5)64位虚拟机