做爲一個java程序猿,常常會被問基礎怎麼樣,對於這個問題,我理解的有兩方面:一是對於java基礎的理解和掌握,好比JDK的相關特性;二是工做的經歷,畢竟,語言編程是一門實戰性質的藝術,就算掌握了千萬理論,編寫不出實際的代碼,等於扯淡。並且,隨着技術的革新,不少東西都再也不是一成不變的,還記得剛出校門那會兒,面試官會問接口與類的區別啥的,大多人會回答:接口裏面的全是抽象方法。這個回答在如今看來,或許已通過時了,隨着JDK1.8的推出,接口裏面也是能夠有方法實現的。因此,在這裏總結一下JDK1.8的幾個經常使用的新特性,以備後用。java
java8默認方法經過default關鍵字實現,在接口中經過default修飾,從而實如今接口中有方法的目的。這個特性能夠從某種程度上簡化代碼量,好比有一個方法,全部的實現都相同,在java8之前,咱們須要再接口的實現類中分別寫些相同的代碼,在java8及之後,咱們能夠將這個方法抽出來,放在接口中經過default關鍵字修飾實現,從而簡化了代碼。面試
舉個栗子:編程
定義接口Car,並實現通用方法engineide
1 public interface Car { 2 3 /** 4 * @Description: Car引擎 5 * @return 6 */ 7 public default void engine() { 8 System.out.println("all car must have a engine"); 9 } 10 11 /** 12 * @Description: Car類型 13 * @return 14 */ 15 public void type(); 16 }
實現類:測試
1 public class SuvCar implements Car { 2 3 @Override 4 public void type() { 5 System.out.println("I'm a suv car"); 6 } 7 }
測試類:spa
1 public class Test { 2 3 public static void main(String[] args) { 4 Car car = new SuvCar(); 5 car.engine(); 6 car.type(); 7 } 8 }