由于新项目都已经启用1.7,看了下官网文档,顺便总结了下。
reference:http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
- IO and New IO
加入java.nio.file和
java.nio.file.attribute这两个包,提供丰富的对file的IO操作,同时
在jdk1.7中可以对zip文件直接进行操作
详细介绍链接:http://docs.oracle.com/javase/7/docs/technotes/guides/io/enhancements.html#7
- Networking
添加URLClassLoader.close
方法
URLClassLoader这个类提供了动态的加载类或Jar这个功能,可以通过jar,文件或者http进行加载,但是常见的问题是,当class文件或者resources资源文件更新后,需要重新加载这些类或者Jar。从理论上来说,当应用清理了对所加载的对象的引用,那么垃圾收集器就会将这些对象给收集掉,然后我们再重新加载新的JAR文件,并创建一个新的URLClassLoader来加载。可是有一个问题,就是我们不知道垃圾收集器什么时候将那些未被引用的对象给收集掉,特别是在Windows中,因为在Windows中打开的文件是不可以被删除或被替换的。URLClassLoader提供了close()这个方法,可以将打开的资源全部释放掉。
- Security
implements ajava.security.KeyStore
that provides access to the Mac OS X Keychain.
- Concurrency Utilities
加入The fork/join framework,基于ForkJoinPool
这个类实现的,非常适合多处理器环境。It is designed to efficiently run a large number of tasks using a pool of worker threads。ForkJoinTask这个类代表一个需要执行的任务,真正执行这些任务的线程是放在一个线程池(ForkJoinPool)里面。ForkJoinPool是一个可以执行ForkJoinTask的ExcuteService,与ExcuteService不同的是它采用了work-stealing模式:所有在池中的线程尝试去执行其他线程创建的子任务,这样就很少有线程处于空闲状态,非常高效。
有一篇中文的参考不错:http://www.infoq.com/cn/articles/fork-join-introduction/
oracle官方英文参考点击:http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html
- java.lang Package
Multithreaded Custom Class Loaders in Java SE 7
在Java SE 7的发布包含了多线程的自定义类加载器的一个重要改进。在以前的版本中,某些类型的自定义类加载器是容易产生死锁。在Java SE 7发布修改锁定机制,以避免死锁。
- Java Programming Language
- Java Virtual Machine (JVM)
- 支持非 Java 语言: Java SE 7 引入一个新的 JVM 指令用于简化实现动态类型编程语言
- Garbage-First Collector 是一个服务器端的垃圾收集器用于替换 Concurrent Mark-Sweep Collector (CMS).
- 提升了 Java HotSpot 虚拟机的性能