java各版本的新特性包含本身碰見總結的,也包含網上各個大神的成果。此特性總結會不按期更新。html
java5:java5的新特性java
java6:java6的新特性segmentfault
java7:java7的新特性 java7語法新特性數據結構
新語法
)java8:java8新特性oracle
lamda表達式(重磅
)app
集合的stream操做框架
提高HashMaps的性能ide
Date-Time Package工具
java.lang and java.util Packages性能
Concurrency
關鍵字 default 修飾符
通常來講default關鍵字是在switch-case中才使用的。在使用jdk8看List源碼的時候,發現了default這個關鍵字做爲修飾符。看如下List中的代碼:
default void replaceAll(UnaryOperator<E> operator) { Objects.requireNonNull(operator); final ListIterator<E> li = this.listIterator(); while (li.hasNext()) { li.set(operator.apply(li.next())); } }
後來查詢資料發現default關鍵字做爲修飾符是java8 的新特性,是在接口中使用。使用default關鍵字可使接口中的方法有方法體,在接口實現的時候能夠實現此方法,也可不用實現。能夠參照下面例子:
/** * 接口中定義兩個default方法 */ public interface TestInterface { default void init(){ System.out.println("interface init"); } default void destroy(){ System.out.println("destroy"); } }
/** * 建立TestClass類實現TestInterface接口 */ public class TestClass implements TestInterface { // 只實現接口中一個init()方法 @Override public void init(){ System.out.println("testClass init"); } public static void main(String[] args){ TestClass testClass = new TestClass(); testClass.init(); testClass.destroy(); } }
java9:java9新特性
java官網中並無java9的JDK下載包,據消息稱,java9剛出未滿一歲就被無情拋棄。oracle官網都直接提供了java10,還出了java11的預覽版。java11是繼java8之後的第一個長期支持的java版本。