JDK 1.5 主要新特性
閑話:實(shí)習(xí)中,頭頭讓我整理一下JDK各版本主要的新特性。第二篇為JDK 1.5主要新特性介紹,因?yàn)樗菜闶悄甏眠h(yuǎn)的東西,就講講java語言的增強(qiáng)吧
參考官方文檔:https://docs.oracle.com/javase/1.5.0/docs/relnotes/features.html
1.泛型(Generics)
-
解釋:泛型提供了一種將集合類型傳遞給編譯器的方法,以便可以檢查它。一旦編譯器知道集合的元素類型,編譯器就可以檢查您是否一直使用了集合,并且可以使用正確的強(qiáng)制轉(zhuǎn)換。
-
例子
public class Paly<T>{//被調(diào)用時(shí)T play(){}}//其中T就是作為一個類型參數(shù)在Play被實(shí)例化的時(shí)候所傳遞來的參數(shù),比如:Play<Integer> playInteger=new Play<>();//這里T就會被實(shí)例化為Integer
2.增強(qiáng)了循環(huán)(Enhanced for Loop)
-
解釋:增加了for-each循環(huán)
-
例子
//使用迭代器void cancelAll(Collection<TimerTask> c) {for (Iterator<TimerTask> i = c.iterator(); i.hasNext(); )i.next().cancel();}//使用for-each循環(huán)void cancelAll(Collection<TimerTask> c) {for (TimerTask t : c)t.cancel();}
3.自動裝箱與自動拆箱(Autoboxing/Unboxing)
-
解釋:自動裝箱自動將基本數(shù)據(jù)類型轉(zhuǎn)換為對應(yīng)包裝器對象;拆箱自動將包裝器對象轉(zhuǎn)換為對應(yīng)的基本數(shù)據(jù)類型。
-
補(bǔ)充資料:
–基本數(shù)據(jù)類型:
byte,char,short,int,float,long,double,boolean
–對應(yīng)的包裝器類型:
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#對應(yīng)物
- 例子
–常量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;}}}
–向枚舉中添加新方法、覆蓋枚舉的方法、實(shí)現(xiàn)接口、使用接口組織枚舉等就不一一舉例
5.可變參數(shù)(Varargs)
-
解釋:在編寫方法的過程中,可能會遇見一個方法有不確定參數(shù)個數(shù)的情況。一般我們會用方法重載來解決問題;但是當(dāng)參數(shù)多的時(shí)候就會顯得很繁瑣,同時(shí)每次擴(kuò)展都會很麻煩。于是我們可以使用數(shù)組作為參數(shù);但麻煩的是每次都要構(gòu)造一個數(shù)組,于是我們可以使用可變參數(shù)的方式
-
補(bǔ)充說明
–可變參數(shù)必須放在參數(shù)列表最后一個
–可變參數(shù)只能有一個
–包含可變參數(shù)的方法匹配優(yōu)先級最低 -
例子
public void method(char c, int...args);
6.靜態(tài)引入(Static Import)
- 解釋:使用靜態(tài)導(dǎo)入后被導(dǎo)入類的靜態(tài)變量和靜態(tài)方法在當(dāng)前類中直接可見。使用時(shí)這些靜態(tài)成員無需再給出他們的類名,調(diào)用的時(shí)候和調(diào)用自己的方法沒有不論什么差別
- 例子import static java.lang.Math.PI;
7.元數(shù)據(jù)/注解(Metadata / Annotations)
-
解釋:它是代碼中的特殊標(biāo)記,能夠在編譯、類加載、運(yùn)行時(shí)被識別(需要設(shè)置),并根據(jù)不同的Annotation來執(zhí)行不同的處理
-
例子
public @interface RequestForEnhancement {int id();String synopsis();String engineer() default "[unassigned]"; String date(); default "[unimplemented]"; }
總結(jié)
以上是生活随笔為你收集整理的JDK 1.5 主要新特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK 1.4 主要新特性
- 下一篇: ClickHouse最详细的入门教程(一