JDK5新特性

来源:互联网 发布:魔方矩阵matlab 编辑:程序博客网 时间:2024/06/05 08:06

1.循环

/** 1.4 */for(int i = 0; i < array.length; i++){   type variable = array[i];   body}/** 5.0 */for(type variable : array){   body}/** 1.4 */for(int i = 0; i < arrayList.size(); i++){   type variable = (type) arrayList.get(i);   body}/** 5.0 */for(type variable : arrayList){   body}

2 泛型

/** 1.4 */ArrayList arrayList = new ArrayList();Type type = (Type) arrayList.get(i)/** 1.5 */ArrayList<Type> arrayList = new ArrayList<Type>()Type type = arrayList.get(i);

3 自动装箱拆箱:在JDK5.0以前,在原始类型与相应的包装类之间的转化是不能自动完成的。要完成这种转化,需要手动调用包装类的构造函数:

/** 1.4 */Integer wrapper = new Integer(n);int n = wrapper.intValue();/** 5.0 */Integer wrapper = new Integer(n);int n = wrapper;

4 可变参数列表

/** 1.4 */method(Object params)/** 5.0 */method(Object... params)

5 可变的返回类型:在JDK5.0以前,当覆盖父类方法时,返回类型是不能改变的。现在有新的规则用于覆盖方法。如下,一个典型的例子就是clone()方法:

/** 1.4 */public Object clone() { ... }Employee cloned = (Employee) e.clone();/** 5.0 */public Employee clone() { ... }Employee cloned = e.clone();

6 静态导入:对于JDK 5.0以前的版本是不支持的

/** 1.4 */System.out.println(Math.sqrt(Math.PI));/** 5.0 */import static java.lang.Math;import static java.lang.System;...out.println(sqrt(PI));

7 控制台输入

/** 1.4 */String input = JOptionPane.showInputDialog(prompt);int n = Integer.parseInt(input);double x = Double.parseDouble(input);s = input;/** 5.0 */Scanner in = new Scanner(System.in);System.out.print(prompt);int n = in.nextInt();double x = in.nextDouble();String s = in.nextLine();

8 格式化输出:JDK5.0以前的版本没有print方法,只能使用NumberFormat.getNumberInstance来代替。

/** 1.4 */NumberFormat formatter = NumberFormat.getNumberInstance();formatter.setMinimumFractionDigits(2);formatter.setMaximumFractionDigits(2);String formatted = formatter.format(x);for (int i = formatted.length(); i < 8; i++){System.out.print(" "); System.out.print(formatted);}/** 5.0 */System.out.printf("%8.2f", x);

9 内容面板代理:在JDK5.0先前的版本中,JFrame,JDialog,JApplet等类没有代理add和setLayout方法。

/** 1.4 */getContentPane().add(component)getContentPane().setLayout(manager)/** 5.0 */add(component)setLayout(manager)

10 StringBuilder类:JDK 5.0引入了StringBuilder类,这个类的方法不具有同步,这使得该类比StringBuffer类更高效。

0 0
原创粉丝点击