这是JDK1.7的新特性。以下是它的一些新特性。
1.优化了对集合的支持,创建List / Set / Map 时写法更简单了。
List<String> list = ["item"];
String item = list[0];
Set<String> set = {"item"};
Map<String,Integer> map = {"key" : 1};
int value = map["key"];
2.对资源的自动回收管理
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
相对于以前版本,br不用代码进行回收管理了,也就是省去了
finally {
br.close();
}
3.对泛型实力创建过程中类型应用进行了简化,不用在重复指明泛型类型了
即这样写就行了:Map<String,String> hello = new Map<>();
3.可以在数字中使用下划线了
int billion = 1_000_000_000;
4.对字符串进行switch case
例如:
String str="News";
switch (str)
{
case "News":
//....
break;
//...
}
然而,这个功能在C#中早就支持了,java竟然这么迟才更新。假若想在Java1.7以下版本怎样实现switch case字符串的选择呢。解决这一问题应该方法有很多,其中利用Java1.5的特性枚举不愧为最好的方法。
注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。(这个功能在C#中早就支持)
5.你可用作二进制字符前加上 0b 来创建一个二进制类型。
例如:
int binary = 0b1001_1001;
6.多重捕获Multi-catch
catch(IOException | NullPointerException | ..........) {
}
另外:
Java 1.4到1.5的修改很大,在编译compile-time 方面提升很大,Java 6在运行时runtime智能上做了优化,Java 7的主要改进:模块化。Java 7新功能的具体的主要修改如下:
◆Modularization 模块化– JSR 294 或者 Project Jigsaw
◆JVM 对动态语言的支持
◆更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的文件系统 file system API – JSR 203
◆对XML本地语言支持. (可能的probable)
◆Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什么情况下重新throw什么内容。
◆Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。
◆更好的类型推断 Better type inference
◆多重捕获Multi-catch
◆JSR 296 – Swing 应用框架 application framework – 这方面需要更简单和简洁。
“小的”sun方面的修改有:
◆升级的类加载class loader 架构;
◆XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;
◆Swing 更新 – JXLayer, DatePicker, CSS styling 等;
◆JavaFX
sun方面“快速”的修改,主要是性能更新:
◆并发方面的细微调整 concurrencytweaks (JSR 166),更好的支持Multicore
◆G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC
◆64 bit VM的压缩指针Compressed pointer
◆MVM-lite – 多个虚拟机能够独立运行应用和允许用kill -9杀死java应用。 |