码迷,mamicode.com
首页 > 编程语言 > 详细

java程序员修炼之道

时间:2015-09-20 22:30:16      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

第一部分:用Java7做开发
第一章:初识java7
1.1语言与平台《Java语言规范(JLP)》《JVM规范(VMSpec)》
1.2Coin项目:浓缩的都是精华
修改过程:1.更新JLS
    2.在源码编译器中实现一个原型
    3.为修改增加必要的类库支持
    4.编写测试和用例
    5.更新文档
    如果修改触及VM或者平台,则还需要
    1.更新VMSpec
    2.实现VM的修改
    3.在类文件和VM工具中增加支持
    4.考虑对反射的影响
    5.考虑对序列化的影响
    6.想一想对本地组件的影响,比如Java本地接口(JNI)
    注:修改类型系统是很危险的自寻思路
1.3Coin项目的修改
1.3.1 switch 中的String支持
    java6之前switch支持byte、char、short和int及枚举常量,
    java7之后增加对String支持
1.3.2更强的数值文本表示法
1.数值常量(如基本类型中的integer)可以用二进制表示
2.在整型常量中可以使用下划线来提高可读性
对于系统底层程序员好,尤其处理原始网络协议、加密、处理比特的程序员
java6之前处理二进制:int x=Integer.parseInt("1100110",2);
java7 int x=1100110;
数字太长,容易眼花,参考Ruby,增加下划线
如 int x=1000_000_000 编译后会去掉"_"
1.3.3改善后的异常处理
    支持多个异常一起处理java7:catch(IOException|NullPointerException|FileNotFoundException e){}
    异常抛出java7:catch(final IOException e){throw e;}
1.3.4try-with-resources(TWR)
    注:这个修改通过编译器实现
try(FileInputStream fin=new FileInputStream("someFile.bin");
    ObjectInputStream in=new ObjectInputStream(fin)){//...}
此处不用手动关闭资源,所有资源类都实现了AutoClose(),也就是说所有类都受到修改!建议在资源相关类使用!
1.3.5砖石语法
    java6:Map<Integer,Map<String,String>> user=new HashMap<Integer,Map<String,String>>();
    java7:Map<Integer,Map<String,String>> user=new HashMap();
    编译器级别修改!
1.3.6部分可能修改类型的警告转移到API提供者而不是API使用者@SafeVarargs
第二章:新I/O

java程序员修炼之道

标签:

原文地址:http://my.oschina.net/686991/blog/508905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!