频道栏目
首页 > 资讯 > java7 > 正文

Java 7 的7个新特性

16-01-22        来源:[db:作者]  
收藏   我要投稿

Java 7 的7个新特性

每篇一囧:最可怕的事,是比我聪明的人还比我努力!

1.对集合类的语言支持;

2.自动资源管理;

3.改进的通用实例创建类型推断;

4.数字字面量下划线支持;

5.switch中使用string;

6.二进制字面量;

7.简化可变参数方法调用。

 

======================  华丽丽的分割线  ======================

 

1.对集合类的语言支持

 

Java将包含对创建集合类的第一类语言支持。这意味着集合类的创建可以像Ruby和Perl那样了。

原本需要怎样:

1List<String> list =newArrayList<String>();2list.add("item");3String item = list.get(0);45Set<String> set =newHashSet<String>();6set.add("item");7Map<String, Integer> map =newHashMap<String, Integer>();8map.put("key", 1);9intvalue = map.get("key");

现在只需这样:(这些集合是不可变的...)

1List<String> list = ["item"];2String item = list[0];34Set<String> set = {"item"};56Map<String, Integer> map = {"key" : 1};7intvalue = map["key"];

    

======================  华丽丽的分割线  ======================

 

 2.自动资源管理

  

Java中某些资源是需要手动关闭的,如InputStream,Writes,Sockets,Sql classes等。这个新的语言特性允许try语句本身申请更多的资源,这些资源作用于try代码块,并自动关闭。

以前的写法:

1BufferedReader br =newBufferedReader(newFileReader(path));2try{3returnbr.readLine();4}finally{5br.close();6}

现在可以:(有点像C#)

1try(BufferedReader br =newBufferedReader(newFileReader(path)) {2returnbr.readLine();3}

   

======================  华丽丽的分割线  ======================

  

3.改进的通用实例创建类型推断;

  

类型推断是一个特殊的烦恼,如下面的代码:

1Map<String, List<String>> anagrams =newHashMap<String, List<String>>();

通过类型推断后变成:

1Map<String, List<String>> anagrams =newHashMap<>();

注:这个<>被叫做diamond(钻石)运算符,Java 7后这个运算符从引用的声明中推断类型。

  

======================  华丽丽的分割线  ======================

  

4.数字字面量下划线支持

  

很长的数字可读性不好,在Java 7中可以使用下划线分隔长int以及long了。如:

intone_million = 1_000_000;

这样子还真看不惯。。。不过的确是可读性好了。

  

======================  华丽丽的分割线  ======================

  

5.switch中使用string

  

这个问题是我在Java中不喜欢用switch的原因之一,以前在switch中只能使用number或enum。现在可以使用string了,哈哈,不错,赞个!

1String s = ...2switch(s) {3case"quux":4processQuux(s);5//fall-through6 case"foo":7case"bar":8processFooOrBar(s);9break;10case"baz":11processBaz(s);12//fall-through13 default:14processDefault(s);15break;16}

   

======================  华丽丽的分割线  ======================

  

6.二进制字面量

  

由于继承C语言,Java代码在传统上迫使程序员只能使用十进制,八进制或十六进制来表示数(numbers)。

由于很少的域是以bit导向的,这种限制可能导致错误。你现在可以使用0b前缀创建二进制字面量:

1intbinary = 0b1001_1001;

 现在,可以使用二进制字面量这种表示方式,并且使用非常简短的代码,可将二进制字符转换为数据类型,如在byte或short。

1byteaByte = (byte)0b001;2 shortaShort = (short)0b010;

  

======================  华丽丽的分割线  ======================

  

7.简化可变参数方法调用。

  

当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告。
JDK 7将警告从call转移到了方法声明(methord declaration)的过程中。这样API设计者就可以使用vararg,因为警告的数量大大减少了。


相关TAG标签
上一篇:Java 7 的新特性一览表
下一篇:Java7语法新特性
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站