Java中的锁(Locks in Java)
- - 并发编程网 - ifeve.com原文链接 作者:Jakob Jenkov 译者:申章 校对:丁一. 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂. 因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字( 译者注:这说的是Java 5之前的情况).
Shared by LaiYonghao本文是从 What's Up in Java 1.7 这篇文章翻译而来。
基本上就是学了一些 python 的语法糖。
下面是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<>();
int billion = 1_000_000_000;
我不知道这个能有多少用处
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;
try { Here comes your code.... } catch(IOException | NullPointerException | ..........) { }
如果有人能说出更多的新特征,那就更好了。我相信里面有更多的很酷的新东西。