最近看了《写给大忙人看的java se 8》这本书,简单的记录一下读后感和总结。
由于本人不做Java GUI 方面的工作,于是第4章种JavaFX直接跳过。
1.lambda 表达式。
这是java 种给出的最新特性,在最近的开发者也是相当火的一项技能。
语法特性
语法格式:参数->表达式
<pre>
来看几个例子
1.无参数
()->{System.out.println("Hello Lambda");};
()->function();
2.携带参数
String result = (String first,String second)->{first+second};
//永远不需要为lambda表达式执行返回类型,它会根据上下文进行推导出来。
</pre>
方法引用
<pre>
1.对象::实例方法
2.类:: 静态方法
(x,y)->Math.pow(x,y) == Math::pow;
3.类::实例方法
String::compareToIgnoreCase
</pre>
Stream API
针对stream 的看法,是一种链式结构操作,针对集合或者一些数据进行一系列操作,改变,转换,过滤,聚合等操作。
<pre>
Stream<Data> data = ...;
Stream<Result> result = data.
filter().
map().
flatMap()
limit()
peek();
......
并行操作一般都是以前缀parallel()进行命名
</pre>
新的时间API
java.time种的时间进行加强。
LocalDateTime 没有时区信息。
Instant 代替了原来的Date
原子值
java8 加强了并发处理,java.util.concurrent.atomic 包提供了用于支持无锁可变变量的类。
其他改进
1.字符串分割连接
a+","+b+","+c = String.join(",",a,b,c);
2.Math.floorMod(x,n) = x %n;
3.集合
Interable--forEach
Collection -- removeIf
List -- replaceAll,sort
Map -- forEach,replace,replaceAll,remove
java 7 中一些特性
1.try -with-resources 来自动关闭流操作资源。
2.object.equals(a,b).