泛型:即“參數(shù)化類型”胁编。就是將類型由原來的具體的類型參數(shù)化厢钧,類似于方法中的變量參數(shù)鳞尔,此時類型也定義成參數(shù)形式(可以稱之為類型形參),然后在使用/調(diào)用時傳入具體的類型(類型實參)早直。接口寥假、類和方法也都可以使用泛型去定義,以及相應的使用霞扬。在使用泛型類時糕韧,雖然傳入了不同的泛型實參,但并沒有真正意義上生成不同的類型喻圃,傳入不同泛型實參的泛型類在內(nèi)存上只有一個萤彩,即還是原來的最基本的類型(本實例中為Box),當然斧拍,在邏輯上我們可以理解成多個不同的泛型類型乒疏。究其原因,在于Java中的泛型這一概念提出的目的饮焦,導致其只是作用于代碼編譯階段,在編譯過程中窍侧,對于正確檢驗泛型結(jié)果后县踢,會將泛型的相關(guān)信息擦出,也就是說伟件,成功編譯過后的class文件中是不包含任何泛型信息的硼啤。泛型信息不會進入到運行時階段。對此總結(jié)成一句話:泛型類型在邏輯上看以看成是多個不同的類型斧账,實際上都是相同的基本類型谴返。
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
其中以上三個寫法都是對的,其目的是為了兼容以前的程序咧织。