jdk8新特性(8u202最后商业免费版)要点
2014-03-18发布
lambda、stream、新⽇期、新注解
jdk-8u202:最后⼀个免费商⽤版本,Oracle于 2019-01-15 停⽌免费商⽤更新
Java SE 8 (8u211 and later)
Java SE 8 (8u202 and earlier)
These Java SE 8 update releases are provided under the Java SE OTN License.
Java SE 8u202 and older updates are available, under the Binary Code License (“BCL”).语⾔
lambda
有别于⾯向对象的⽅式,lambda是⾯向函数的
FunctionalInterface:第⼀次可以把函数作为参数,这个就很强⼤了
默认⽅法:在接⼝中直接提供⽅法的默认实现,如
默认⽅法:
java在哪里可以免费自学java.lang.Iterable {
default void forEach(Consumer<? super T> action) {
for (T t : this) {
action.accept(t);
}
}
}
类库
Stream API:数据源 → Stream → 中间操作 → 终端操作,还有并⾏流⽀持
Stream API:
List<String> ret = Arrays.asList("key#1", "demo1").stream().filter(v -
> v.startsWith("key#")).List());
Date
JDK7:TimeZone时区、Calendar⽇历、DateFormat解析和格式化
JDK8:详见java.time包
// 时间戳
Instant inst = w();
// 本地⽇期
LocalDate localDate = w();
/
/ 本地时刻
LocalTime localTime = w();
// 本地⽇期和时刻
LocalDateTime localDateTime = w();
// 带时区的⽇期时刻
ZonedDateTime zonedDateTime = w();
// 格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse("2019-11-25", formatter);
Optional类:
Optional类:⽬标是解决NPE
我的最佳实践是不使⽤Optional,但要遵循:empty集优于null,T[0]优于null;
另外obj != null⽐Optional.isPresent()可读性更⾼
其他优化
其他优化:HashMap中链表引⼊红⿊树、ConcurrentHashMap并发优化等
Nashorn:新的javascript引擎,在⽣产中⽤于动态逻辑(业务逻辑存储在数据库中),性能还不错。Nashorn:
jjs⼯具:可以⽤java写脚本,如test.sh
jjs⼯具
#!你的jdk8路径/bin/jjs
var text = 'hello,这是⼀段明⽂,ahaa';
print(text);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论