Java 5 & Java 6 区别
个人认为的主要区别:
1、相比java5,java6的性能、稳定性显著提高;
2、java6对于桌面应用做了许多改进;
3、允许虚拟机运行时动态连接上去进行调试;
4、标准化脚本语言,包括JRuby,Javascript,Groovy等。
详细区别如下:
1、性能和质量
Java 6 同Java 5不一样,没有新的语言特征,是一个以稳定、提高为目的的版本。
Java 6不论是服务器端还是客户端版本都有了两位数百分比的提高,根据领域的不同Java 6性能提高了20%-40%。
在质量上,仅仅是兼容性测试就有100,000个测试程序来保证,Java 6是第一版在社区模式下开放式的进行的。
Mustang社区为Java 6的开发提供了大量的错误报告,这些错误由于及时地在版本开发早期阶段中就发现,使得这一版的质量得到了极大的提高。
从各种社区对于Java 6的反馈来看,从beta开始,人们就普遍认为这是一般质量比较高的版本。
2、新的安全功能
Java 6对于安全的新支持主要有:
JSR 105: XML DSIG API/implementation、
本地平台GSS/Kerberos的集成、
JSR 268: Smart Card I/O API、
访问Windows平台本地PKI和加密服务、
Java GSS实现对SPNEGO协议的支持、
基于JAAS的LDAP认证、
PKI证书路径生成器和校验器实现的改进等等。
3、桌面应用和部署
Java 6对于桌面应用的改进应该说是最大的亮点之一,它不像安全那么不容易被人注意到,已经有很多人认为Java 6是面向桌面应用的版本。
Swing在许多方面得到改进:LookAndFeel,性能极大提高,字体反走样,GroupLayout集成,太多太多。
4、可插拔标注(Pluggable Annotations)
支持自定义的标注,并且在虚拟机参数中可以直接加入处理标注的脚本。
5、编译器API
Java 6提供了Compiler API可以让你编程实现对于Java编译器的运行时访问和控制。
6、虚拟机监控和管理
现在的虚拟机工具,包括监控、调优、调试、和管理都能在Java程序运行的时候动态连接上去进行调控,不需要你在启动Java程序之前设置好选项。
这对于服务器端长时间运行的服务程序,比如应用服务器,Web服务器等等出现问题时进行调试提供了极大的方便。
这些程序往往出现问题时需要即时环境调试,不可能允许你关闭他们,再使用调试选项重新启动,重新调试。这一点非常非常有用。
7、新的桌面API
包括SwingWorker、JTable排序和过滤、GroupLayout功能。SwingWorker能帮你编写响应速度比较快的Java用户界面。
8、数据库访问
新的JDBC 4.0 API,以及一个纯Java的数据库(前身是Apache Derby),允许你在编写小类型的java应用时使用该数据库作为信息存储。
9、脚本语言标准化支持
Java6标准化了脚本的支持,包括了流行的JRubby、JavaScript、Groovy等等。脚本语言的标准化被许多人看做Java 6最主要亮点之一。
10、Web服务的完全支持
提供了好用的API允许用户方便的开发Web服务,而不需要第三方的支持。