一 为什么升级JDK?
为满足更丰富的语法支持,更多开源产品的使用,以及部分场景的性能优化,为后续部分产品升级做准备。
二、JDK1.6和1.7的主要区别
1、模块化以及对动态语言的支持;
2、 对集合类的语言支持;
3、对资源自动回收管理;
4、 改进的通用实例创建类型推断;
5、 数字字面量下划线支持;
6、 switch中使用string;
7、二进制字面量;
8、 简化可变参数方法调用;
9、多重捕获Multi-catch;
10、并发包一些优化;
11、增加G1垃圾收集器;
12、64 bit VM的压缩指针Compressed pointer;
13、升级classloader架构;
14、更多的IO支持,支持异步IO。
详情:http://openjdk.java.net/projects/jdk7/features/
三、下载地址(7u79版本)
点击Java SE Development Kit 7u79,根据自己情况选择对应环境jdk
四、jdk1.6升级1.7不兼容地方(欢迎补充完善)
4.1、 JSR 334:异常处理改进可能导致源代码不兼容
4.2、在 JDBC 接口中引入新的方法
4.3、JSR 202:51.0版本class文件的验证
4.4、java.lang.Character.isLowerCase/isUpperCase 方法更新为遵守Unicode规范。
4.5、向TreeMap插入非法项将抛出空指针异常
4.6、Formatter.format() 现在抛出 FormatFlagsConversionMismatchException
4.7、java.nio.channels.DatagramChannel的方法有些改变
4.8、更新Socket管道功能
4.9、方法类型推断和重载决议
4.10、递归中的无约束类型变量推断
4.11、一个类不能包含两个擦除后签名相同的方法,但使用不同返回值
4.12、不在允许子类读取父类私有变量
4.13、重写源代码中 Sun 的引用
4.14、更新 Arrays 和 Collections 排序行为抛出 IllegalArgumentException
4.15、ThreadGroup.setMaxPriority 方法行为遵守规范
4.16、java.io.File.setReadOnly 和 setWriteable 方法拥有新的行为