JDK1.4与5的区别
1. 泛型
2 自动装箱/拆箱
3 for-each
4 static import
5 变长参数
1. 泛型 1.4之前 java util包中容器类,装的是Object对象,你要装特定的类型可以,但要强制转换,这可能导致运行时错误.
例:原来ArrayList list=new ArrayList();
list.add(new Integer(3));
list.add(new Integer(4));
int i=((Integer)(list.get(0))).parseInt();
很麻烦
现在ArrayList <Integer> list=new ArrayList <Integer> ();
list.add(new Integer(3));
list.add(new Integer(4));
int i=list.get(0).parseInt();
不用Cast,运行时错误变为编译时错误,这是进步.
类似与C++中的摸板templete.但机理不同.
2 自动装箱/拆箱
还是刚才例子
最后一句可改为
int i=list.get(0);
原始类型与对应的包装类不用显式转换,方便
3 for-each
循环的增强
int a[]={........};//初始化,略
for(int i:a)
{
......
}
不用以前的i=0;i <a.length;i++
4 static import
以前调Java.math
Math.sqrt();
现在 static import java.lang.Math.sqrt;
再 sqrt();
相当于你自己类里有这个方法
5 变长参数
int sum(int ...intlist)
{
int i,sum;
sum=0;
for(int i=0;i <intlist.length;i++)
{
sum+=list[i];
}
return sum;
}
有任意个参数,把他看作数组
JDK6和JDK5相比的新特性有:
http://www.ibm.com/developerworks/cn/java/j-lo-jse6/
1、instrumentation
在 Java SE 6 里面,instrumentation 包被赋予了更强大的功能:启动后的 instrument、本地代码 instrument,以及动态改变 classpath 等等。
2、Http有所增强
3、 Java 管理扩展(JMX) 架构及其框架,以及在 Java SE 5 中新引入的 JMX API -- java.lang.management 包
4、JDK 6 中新增加编译器 API(JSR 199)。利用此 API,您可以在运行时调用 Java 编译器,可以编译不同形式的源代码文件,还可以采集编译器的诊断信息。
5、Java DB 和 JDBC 4.0
6、对脚本语言的支持
Java SE 6 新引入的对 JSR 223 的支持,它旨在定义一个统一的规范,使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在 Java 平台上调用各种脚本语言的目的。
7、XML API 与 Web 服务
Java SE 6 中提供的 XML 处理框架,以及在此框架之上结合注释(Annotation) 技术,所提供的强大的针对 Web 服务的支持