您的位置:首页 > 编程语言 > Java开发

黑马程序员_JDK1.5新特性部分解析

2012-06-14 21:30 253 查看
----------------------
android培训、java培训、期待与您交流! ----------------------

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 {

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 {

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;

   }*/

  

   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);

   }  

----------------------
android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息