黑马程序员技术交流社区

标题: 关于JDK1.5新特性 [打印本页]

作者: lichao    时间: 2013-12-21 18:36
标题: 关于JDK1.5新特性
帮忙看看JDK1.5新特性,还缺啥呀?帮忙添添改改。
我知道的有:自动拆箱装箱,泛型,高级for,枚举,静态导入,线程中的锁Lock,可变参数。

作者: 776699    时间: 2013-12-23 00:11
JDK1.5新特性:

1.自动装箱与拆箱:

Integer iObj = 3;

System.out.println(iObj + 12);
Integer i1 = 137(-128--127范围时,为true);
Integer i2 = 137(-128--127范围时,为true);

System.out.println(i1 == i2); //false,但是括号中时却返回ture,原因是Integer采用的是享元模式

Integer i3 = Integer.valueOf(213);
Integer i4 = Integer.valueOf(213);
System.out.println(i3==i4);//同上,另一种包装形式


2.枚举(常用来设计单例模式)

public class EnumTest {

/**
* @param args
*/
public static void main(String[] args) {
WeekDay1 weekDay = WeekDay1.MON;
System.out.println(weekDay.nextDay());
WeekDay weekDay2 = WeekDay.FRI;
System.out.println(weekDay2);
System.out.println(weekDay2.name());
System.out.println(weekDay2.ordinal());
System.out.println(WeekDay.valueOf("SUN").toString());
System.out.println(WeekDay.values().length);
new Date(300){};
}

public enum WeekDay{

SUN(1),MON(),TUE,WED,THI,FRI,SAT;
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}

public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time = time;}
}
}

3.静态导入

import static java.lang.Math.*;

public class StaticImport {
public static void main(String[] args){
int x = 1;
try {
x++;
} finally {
System.out.println("template");
}
System.out.println(x);


System.out.println(max(3, 6));
System.out.println(abs(3 - 6));

}
}
4.可变参数

public class VarableParameter {

/**
* @param args
*/
public static void main(String[] args) {

System.out.println(add(2,3));
System.out.println(add(2,3,5));
}


public static int add(int x,int... args){
int sum = x;
/* for(int i=0;i<args.length;i++){
sum += args[i];
}*/

for(int arg : args){
sum += arg;
}
return sum;
}

}
5.内省

ReflectPoint pt1 = new ReflectPoint(3,5);

BeanInfo beanInfo = Introspector.getBeanInfo(pt1.getClass());
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
Object retVal = null;
for(PropertyDescriptor pd : pds){
Method methodGetX = pd.getReadMethod();
retVal = methodGetX.invoke(pt1);

}

作者: pray    时间: 2014-9-2 12:58
好的谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2