这里写目录标题
概述
Lambda表达式
在别的语言里面更优秀的语法被Java抄过来。
Lambda表达式的本质:作为函数式 接口的实例,依赖接口存在。
函数式(Functional接口)
方法引用与构造器引用
相当于Lambda表达式的简化。就是本来要写Lambda表达式,但是Lambda表达式中的用到的方法已经被实现了,就可以改成方法引用格式,更加简化。和C++的“::”类似
构造器引用
强大的Stream API
考虑造以下随机数或者生成一些数
Optional类
@Test
public void test1() {
Boy b = new Boy("张三");
Optional<Girl> opt = Optional.ofNullable(b.getGrilFriend());
// 如果女朋友存在就打印女朋友的信息
opt.ifPresent(System.out::println);
}
@Test
public void test2() {
Boy b = new Boy("张三");
Optional<Girl> opt = Optional.ofNullable(b.getGrilFriend());
// 如果有女朋友就返回他的女朋友,否则只能欣赏“嫦娥”了
Girl girl = opt.orElse(new Girl("嫦娥"));
System.out.println("他的女朋友是:" + girl.getName());
}
@Test
public void test3(){
Optional<Employee> opt = Optional.of(new Employee("张三", 8888));
//判断opt中员工对象是否满足条件,如果满足就保留,否则返回空
Optional<Employee> emp = opt.filter(e -> e.getSalary()>10000);
System.out.println(emp);
}
@Test
public void test4(){
Optional<Employee> opt = Optional.of(new Employee("张三", 8888));
//如果opt中员工对象不为空,就涨薪10%
Optional<Employee> emp = opt.map(e ->
{e.setSalary(e.getSalary()%1.1);return e;});
System.out.println(emp);
}
JDK9新特性
模块化系统
jShell命令
接口的私有方法
钻石操作符
try语句
其他改进
包括String存储结构变更,快速创建只读集合,InputStream加强,增强的StreamAPI,Optional类中Stream的使用,Javascript引擎升级Nashorn。
JDK10新特性
JDK11新特性