JDK5新特性

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类更高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值