jdk1.5新特性

1.静态导入(注意:这是1.5的新特性。1.5之前的版本一定会报错):

import可以导入一个包中的一个类或一个包中的所有类

Import可以导入一个类中的一个静态方法或所有静态方法

import static java.lang.Math.abs;
import static java.lang.Math.*;

通过导入Math中的方法,可以再程序中使用abs方法时,不用加类名,直接使用

System.out.println("max="+max(num1,num2));
System.out.println("abs="+abs(num2-num1));

2.可变参数

一个方法的参数个数可以使不确定的,例:

add(num1,num2,num3);
add(num1,num2);

可变参数的特点:

只能出现在参数列表的最后

在调用可变参数方法时,编译器会为该方法创建隐含的创建一个数组,所以在调用时,在方法体中以数组的形式访问可变数组。

//可变数组的定义
    public static int add(int num1,int...args)
    {
        int result=num1;
        for(int i=0;i<args.length;i++){
            result=result+args[i];
        }
        return result;
    }
    public static void main(String[] args)
    {
        int[] nums={1,1,1};
        //可变数组的调用
        System.out.println(add(1,nums));
    }

3.for循环

for(type 变量名:集合变量名)

{

}

说明:

(1)迭代变量必须在()里面定义

(2)集合变量可以是数组或者实现了Iterable的集合类【hashMap类不可以使用】

(3)type前面还可以加修饰符 ,例:final

例:

public static int add(int num1,int...args)
{
    int result=num1;
    /*for(int i=0;i<args.length;i++){
        result=result+args[i];
    }*/
    for(int i:args)
    {
        result=result+i;
    }
    return result;
}

4,基本数据类型的自动装箱与拆箱

在-128~127之间的整数,在new Integer时,是有一个池子,在池子中取这些对象【这里用到了享元模式的思想】

享元模式的详细介绍:http://www.cnblogs.com/excellencesy/p/8911003.html

Integer num1=1;
Integer num=1;
System.out.println(num==num1);

两个Integer是同一个对象

而:

Integer num1=1111;
    Integer num=1111;
    System.out.println(num==num1);

是两个不同的对象

Extend:

//两个String不是同一个对象
String str1=new String("abc");
String str2=new String("abc");
System.out.println(str1==str2);

每次new都是在创建新的对象

但是:

String str1="abc";
String str2="abc";
System.out.println(str1==str2);

两个String是同一个对象

extends:

Integer num1=Integer.valueOf(3);
Integer num=Integer.valueOf(3);
Integer valueOf(int num);这个静态方法,是手动的将int对象变成Integer。
这两个也是同一个对象
Integer num1=Integer.valueOf(333);
Integer num=Integer.valueOf(333);

这两个不是同一个对象

5,反射,这个在之前整理过:http://www.cnblogs.com/excellencesy/p/8868567.html

猜你喜欢

转载自www.cnblogs.com/excellencesy/p/8911280.html