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(),那么取出数据的时候需要对其进行类型转换。
现在
ArrayList<Integer> list = new ArrayList<Integer>();
注意一下下列这种情况
2. For each
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
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.集合的支持
之前:
Java 1.7:
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
参考 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; }
相关文章推荐
- java绘图,画坦克
- jdk环境变量配置
- java5并发库部分类
- Java同步问题
- java 多态的好处
- Java学习笔记之字符串(五)
- java日期时间处理小结
- struts2整合jfreechart
- struts2整合JFreechart 饼图、折线图、柱形图
- java中volatile关键字的含义
- Java代码优化编程
- java-----螺旋矩阵
- myeclipse无法识别cvs的web工程,怎么导入myeclipse中?
- java学习之路---反射进一步研究
- myeclipse中项目名称改掉,造成cvs版本混乱问题解决(有很多代码未提交)
- java多线程程序设计一、简单多线程的实现
- java多线程程序设计二、线程返回值,优先级以及暂停的问题
- java多线程程序设计三、后台线程(守护线程)
- struts 笔记<2>
- 6 款常用的Java开源报表制作工具推荐