锁定老帖子 主题:java 5/6 新特性之我见
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-06
一、增强的for循环 这只是一个很小的语言改进,来源于vb等语言中的foreach语句,因此有人也称其为foreach增强。它可以作用于集合类,数组等。 如:int[] a={1,335,59,9,4,8}; for(int i:a) system.out.println(i); 和 Set<Integer> set=new Set<Integer>(); for(int i=0;i<10;i++) set.add(i); for(Integer I:set) system.out.print(i); 二、自动装箱和拆箱 运行时系统可以直接在基本类型和对应的包装类之间转换。 如 Set<Integer> set=new Set<Integer>(); for(int i=0;i<10;i++) set.add(i); for(Integer I:set) system.out.print(i); 就使用了int和Integer之间的自动转换。
三、可变参数列表 说的了就是可以使用不确定个数的参数,主要用于函数 如 fun(double... a){ for(double d:a) system.out.print(d);} 它的标志性语法就是类型后连着三点。 在此以前java中也可以用数组参数来达到相关的效果。但是可变参数更有表达力。
四、 协变返回 就是可以在覆盖函数的时候用原来函数的返回类型的子类来替代 如: Object pop(){} @Override Integer pop(){} 上面两个函数在java5中是可以运行的。
五、枚举 java中的枚举是类型安全的,但是它是一个类Enum的子类,因此它不能再继承其它类,且java的enum比c的enum功能更强大,而且在是很复杂。与枚举有关的有一个静态导入(static import) ,它是在当前的文件中你可以直接使用它的实例名,而不用加上enum类型名。enum指的是实例集合。 六、泛型 泛型也是参数类型,和c++中的模板(template)有相似的地方,但是java中的泛型功能要弱得多,而且很难自己写泛型。希望在java7中改进。 如 Collection<String> c = new ArrayList<String>(); 但是ArrayList<Object> arr=new ArrayList<String>();却会出错。 而且支持?通配符和super, extends来指定边界。 七、注解(annotation) 注解可以说是java5中加入的最有前途的特性,是元数据,也就是可以用来表示其它数据的数据,但是它不是普通人可以驾驭的。 就像我在前例中使用的@Override,就是一个注解。
java6主要是在性能上做了改进,同时在swing上做了一些增加,如Desktop,SystemTray,SystemTrayIcon和启动动画。当然sun对java编译器,解释器做了很多增强。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1313 次