黑马程序员技术交流社区
标题:
jdk 1.7的新特性有哪些 ?
[打印本页]
作者:
奋斗的青春
时间:
2012-10-20 16:09
标题:
jdk 1.7的新特性有哪些 ?
jdk 1.7的新特性有哪些 ,求解?
作者:
sun~~
时间:
2012-10-20 16:42
1、switch中可以使用字串了
2、"<>"这个玩意儿的运用List tempList = new ArrayList<>(); 即泛型实例化类型自动推断。
3、对Java 集合( Collections )的增强支持
在JDK1.7 中,摒弃了 Java 集合接口的实现类,如: ArrayList 、 HashSet 和 HashMap 。而是直接采用 [] 、 {} 的形式存入对象,采用 [] 的形式按照索引、键值来获取集合中的对象,如下:
Java代码
List<String> list=["item"]; //向List集合中添加元素
String item=list[0]; //从List集合中获取元素
Set<String> set={"item"}; //向Set集合对象中添加元素
Map<String,Integer> map={"key":1}; //向Map集合中添加对象
int value=map["key"]; //从Map集合中获取对象
4、 语法上支持集合,而不一定是数组
Java代码
final List piDigits = [ 1,2,3,4,5,8 ];
5、 新增一些取环境信息的工具方法
Java代码
File System.getJavaIoTempDir() // IO临时文件夹
File System.getJavaHomeDir() // JRE的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动java进程时所在的目录
6、Boolean类型反转,空指针安全,参与位运算
7、 数值可加下划线
例如: int one_million = 1_000_000;
8、 支持二进制文字
例如: int binary = 0b1001_1001;
9、简化了可变参数方法的调用
当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个 “ 非安全操作 ” 的警告
作者:
孙含庆
时间:
2012-10-20 16:44
别给分了(可能也不会有人加分{:soso_e113:}),这些是从文件中复制的,别人说的,
建议你先看完张孝祥老师的1.5 的新特性,然后在看高级点的东西,不然学起来会不知所踪的。。
下面是Java 1.7 里新出现的功能的一些用法例子:
对集合的支持
创建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"];
对资源的自动回收管理
下面的代码看起来有点麻烦 … 不是吗?
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}
相信你一定会喜欢下面这种写法。
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
泛型实例创建过程中类型引用的简化
当声明你的对象的接口是,你肯定是不想重复指明泛型类型。
看看下面的这种写法多好呀…
Map<String,String> hello = new Map<>();
1Map hello = new Map<>();
在数字中使用下划线
int billion = 1_000_000_000;
1int billion = 1_000_000_000;
我不知道这个能有多少用处。
对字符串进行switch case
String availability = "available";
switch(availability) {
case "available": //code break;
case "unavailable": //code break;
case "merged": //code default: //code break;
}
注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。
二进制符号
你可用作二进制字符前加上 0b 来创建一个二进制类型。
int binary = 0b1001_1001;
一个catch里捕捉多个异常类型
try {
Here comes your code....}
catch(IOException | NullPointerException | ..........) {
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2