jdk1.5 新特性

来源:互联网 发布:学钢琴的软件 编辑:程序博客网 时间:2024/04/29 04:35

1 - 泛性编程
ArrayList<String> list = new ArrayList<String>();
list.add(new String("Hello!"));
System.out.println(list.get(0));

2 - 自动装箱/拆箱
ArrayList list = new ArrayList();
Integer number = new Integer(10);   //先要把数字弄进包装类
list.add(number);

//然后想要取出这个数字也极其麻烦,看看这个式子,晕啊!
int i = ((Integer)list.get(0)).intValue();

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10);
int i = list.get(0);

3 - 增强的循环结构

呵呵,这可是一个非常厉害的东东啊,不能小视。以前的for(;;)循环我想大家都很熟悉,我也不再举例子了,咱们就看看现在这个新的循环吧:

int data[] = { 1, 2, 3, 4, 5 };
for(int j : data)
     System.out.println(j);

4 - 枚举类型
这是一个C/C++程序员都比较熟悉的概念,但是以前Java里面没有,现在终于引入了,用法和C/C++中相似:
enum Color {
     BLACK,
     WHITE,
     GREEN
};

Color c = Color.GREEN;

5 - 静态import

double result = Math.sqrt(100);

那个前面的前缀Math是不是有点不爽,要是和C语言里面直接使用sqrt()就好了。OK,现在我们可以了--使用静态import:

import static java.lang.Math.*;

double result = sqrt(100);


6 - 格式化输出


System.out.printf("This is a test: %4.2f/n", 123.123);

这就会打印出:This is a test: 123.12

7 - 从终端读取数据

刚开始接触Java的时候,我怎么也不能用Java在终端像C一样方便的读取数据。要从终端读取一个整数我以前是这么弄的:

try {
     BufferedReader reader = new BufferedReader(new
               InputStreamReader(System.in));
     int i = Integer.parseInt(reader.readLine());
} catch(IOException e) { }


现在好了,Java里面引入了一个Scanner(),可以方便的从终端读取数据:

Scanner read = new Scanner(System.in);
int i = read.nextInt();


8 - 不确定的参数个数

void argtest(
Object ... args) {
     for(int i = 0; i < args.length; i++)
         System.out.println(i);
}

然后我们可以这样调用这个函数:
argtest(1);
argtest(1, 2, 4, 5, 6);