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

Java 不同版本更新总结

2013-11-27 06:00 435 查看
面试时候虽没有被问到,但是感觉在相关问题上丢了面试分,在此总结一下。

参考 Reference
http://pwosboy.iteye.com/blog/118756 http://hanhg.iteye.com/blog/291956 http://pengcqu.iteye.com/blog/499749
Java 1.5

1. Generic

在之前版本,如果声明的时候没有特别指出class,比如ArrayList list = new ArrayList(),那么取出数据的时候需要对其进行类型转换。

list.add(new Integer(3));
Integer temp = (Integer)list.get(0);



现在

ArrayList<Integer> list = new ArrayList<Integer>();

注意一下下列这种情况

public <T extends Comparable> T max(T t1, T t2) {
if (t1.compareTo(t2) > 0)
return t1;
else
return t2;
}

void printCollection(Collection<?> c) {// Collection<?>, collection of unknown
for (Object e : c) {
System.out.println(e);
}
}// 可以传入各种类型的Collection,如果是Collection<Object>则不能这么用,因为“若Foo是Bar的一个子类型(子类或子接口), G是某个泛型声明, 则G<Foo>并不是G<Bar>的一个子类型


2. For each

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(3));
list.add(new Integer(4));
for(Integer temp : list){
System.out.println(temp.intValue());
}
3. Autoboxing/unboxing

自动装包:基本类型自动转为包装类.(int >> Integer)

自动拆包:包装类自动转为基本类型.(Integer >> int)

int a = 3;
Collection<Integer> c = new ArrayList<Integer>();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b + 2);//这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.
4. enum

public enum Color{
Red,
White,
Blue
}
for (Color c : Color.values())
System.out.println(c);
5. Varargs

public void write(Object... objs) {
for (Object obj: objs)
System.out.println(obj);
}
6. Static Imports

import static java.lang.Math.*;
…….
r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);


Java 1.6

1. Class Desktop && Class SystemTray

2. JAXB2

3. StAX (DOM, SAX)

4. Compiler API

5. Http Server API

6. Pluggable Annotation Processing API

7. java.io.Console

8. Support script language: Ruby, Groovy, Javascript

9. Common Annotations

1.7

1.集合的支持

List< String> list = ["item"];
String item = list[0];
Set< String > set = {"item"};
Map< String,Integer > map = {"key" : 1};
int value = map["key"];
2. 资源自动回收管理

之前:

BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}


Java 1.7:

try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
3. Generic simplified

Map<String,String> hello = new Map<>();

4. 数字中的下划线

待研究

5. switch case支持String. Remember to check if null before parse String

6. Binary symbol

int binary = 0b1001_1001;

7. Catch mutiple exception types

try {
do something;
}
catch(IOException | NullPointerException | ..........) {
do something;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: