Java 7新特点与性能测试

Java 7与以往版本有完全的不同,当然基本架构还是在JVM中运行,由JVM管理对象,内存管理完全改变。

1.4到1.5是编译时间的提高,Java 6是运行时间提高,Java 7是模块化(banq按:OSGI标榜的模块化被吸收进去了,模块化本来就应该集成到JVM,否则另外再带个套子就不方便了)

1.模块化– JSR 294 or Project Jigsaw

2.JVM支持动态语言

3.异步IO

4.支持XML自然语言native language

5.安全抛出Exception Multi-catch 又是和Exception有关

6.空指针,类似groovy,这样没有必要检查null

7.较好的对象类型推理

下面是性能相关

8.JSR 296 – Swing application framework 更容易创建Swing应用,虽然有了JavaFX,但是还是多照顾一下老的SWING遗产。

9.更好支持多核并发模型

10.导致更少暂停时间的垃圾回收GC

11.Compressed pointer 64 bit VM

12.MVM-lite 多个虚拟机帮助隔离Java应用

该文对Java 7和前面版本做了性能测试:
Java 7 What’s New, Performance Benchmark – 1.5, 1.6, 1.7

结果如下:Java 5 <=== 18% faster=== < Java 6 < ===46% faster===< Java 7

[该贴被banq于2009-08-29 17:34修改过]


One of the strengths of Java is its readability
Java最大的特点就是可读性,Java7在消除冗余简化上迈出了一步:
1.简化泛型:
Map<String, List<BigDecimal>> numberMap = new TreeMap<>();

2.Collection Literals
可以象数组那样创建集合了
List<Integer> powersOf2 = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};

Map<String, Integer> ages = {"John" : 35, "Mary" : 28, "Steve" : 42};

3.Automatic Resource Management自动资源管理
不用自己catch了,如下:


static String readFirstLineFromFile2(String path) throws IOException
{
try (BufferedReader reader = new BufferedReader(new FileReader(path))
{
return reader.readLine();
}
}

JDK7 Tackles Java Verbosity
[该贴被banq于2009-08-31 17:04修改过]