JDK 1.5 主要新特性
閑話:實習中,頭頭讓我整理一下JDK各版本主要的新特性。第二篇為JDK 1.5主要新特性介紹,因為它也算是年代久遠的東西,就講講java語言的增強吧
參考官方文檔:https://docs.oracle.com/javase/1.5.0/docs/relnotes/features.html
1.泛型(Generics)
-
解釋:泛型提供了一種將集合類型傳遞給編譯器的方法,以便可以檢查它。一旦編譯器知道集合的元素類型,編譯器就可以檢查您是否一直使用了集合,并且可以使用正確的強制轉換。
-
例子
public class Paly<T>{//被調用時T play(){}}//其中T就是作為一個類型參數在Play被實例化的時候所傳遞來的參數,比如:Play<Integer> playInteger=new Play<>();//這里T就會被實例化為Integer
2.增強了循環(Enhanced for Loop)
-
解釋:增加了for-each循環
-
例子
//使用迭代器void cancelAll(Collection<TimerTask> c) {for (Iterator<TimerTask> i = c.iterator(); i.hasNext(); )i.next().cancel();}//使用for-each循環void cancelAll(Collection<TimerTask> c) {for (TimerTask t : c)t.cancel();}
3.自動裝箱與自動拆箱(Autoboxing/Unboxing)
-
解釋:自動裝箱自動將基本數據類型轉換為對應包裝器對象;拆箱自動將包裝器對象轉換為對應的基本數據類型。
-
補充資料:
–基本數據類型:
byte,char,short,int,float,long,double,boolean
–對應的包裝器類型:
Byte,Character,Short,Integer,Float,Long,Double,Boolean -
例子
public class Main {public static void main(String[] args) {//自動裝箱Integer total = 99;//自定拆箱int totalprim = total;} }
4.類型安全的枚舉(Typesafe Enums)
- 解釋:在1.5中,Java語言獲得了枚舉類型的語言支持。 在它們最簡單的形式中,這些枚舉看起來就像它們的C,C ++和C#對應物
- 例子
–常量public enum Color { RED, GREEN, BLANK, YELLOW }//--switch語句 enum Signal {GREEN, YELLOW, RED}public class TrafficLight {Signal color = Signal.RED;public void change() {switch (color) {case RED:color = Signal.GREEN;break;case YELLOW:color = Signal.RED;break;case GREEN:color = Signal.YELLOW;break;}}}
–向枚舉中添加新方法、覆蓋枚舉的方法、實現接口、使用接口組織枚舉等就不一一舉例
5.可變參數(Varargs)
-
解釋:在編寫方法的過程中,可能會遇見一個方法有不確定參數個數的情況。一般我們會用方法重載來解決問題;但是當參數多的時候就會顯得很繁瑣,同時每次擴展都會很麻煩。于是我們可以使用數組作為參數;但麻煩的是每次都要構造一個數組,于是我們可以使用可變參數的方式
-
補充說明
–可變參數必須放在參數列表最后一個
–可變參數只能有一個
–包含可變參數的方法匹配優先級最低 -
例子
public void method(char c, int...args);
6.靜態引入(Static Import)
- 解釋:使用靜態導入后被導入類的靜態變量和靜態方法在當前類中直接可見。使用時這些靜態成員無需再給出他們的類名,調用的時候和調用自己的方法沒有不論什么差別
- 例子import static java.lang.Math.PI;
7.元數據/注解(Metadata / Annotations)
-
解釋:它是代碼中的特殊標記,能夠在編譯、類加載、運行時被識別(需要設置),并根據不同的Annotation來執行不同的處理
-
例子
public @interface RequestForEnhancement {int id();String synopsis();String engineer() default "[unassigned]"; String date(); default "[unimplemented]"; }
總結
以上是生活随笔為你收集整理的JDK 1.5 主要新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK 1.4 主要新特性
- 下一篇: ClickHouse最详细的入门教程(一