1. JDK1.4和1.5的区别?
这个问题其实对于做外包的开发人员算是一个难题了。外包开发过程中一些Java版本升级
的项目现在还不是很多,而对于普通的开发人员来说平时也不会注意这些细节,
强大的编辑器已经为你的开发提供了足够的方便,只要是功能正常实现了,没有出现
语法错误,可能没有人关注这个问题。好了,说些这个问题的答案吧。到网上查了一些贴出来,
详细的最好参照SUN的官方网站(
http://java.sun.com/j2se/1.5.0/docs/guide/language/
)。
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;
}
例:原来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;
}