jdk8:
- Lambda表达式,Lambda 表达式把函数作为一个方法的参数
- 函数式编程
- 接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法
- 方法引用
- 引入Optional来避免空指针
- 引入Streams相关的API
- 引入新的Date/Time相关的API
- JVM使用MetaSpace代替了永久代(PermGen Space)
jdk9
- 接口方法可以使用private来修饰 这跟抽象类好像了
- 设置G1为JVM默认垃圾收集器
- 支持http2.0和websocket的API
- 模块化
在 Java 8 及之前的版本中,所有的 Java 类都是放在同一个类路径中的,这样容易导致类名冲突和版本冲突。而在 Java 9 引入的模块系统中,一个模块是由多个包和模块声明组成的,并且每个模块都有一个唯一的名称,这样就可以避免命名冲突和版本冲突。
jdk14
instanceof类型匹配语法简化,可以直接给对象赋值,如if(obj instanceof String str),如果obj是字符串类型则直接赋值给了str变量;



















