Java泛型中的類型擦除意為只在編譯時刻進行類型檢查實際在運行時編譯器會自動插入相應的轉換(cast)代碼
List list = new ArrayList();
listadd(Hi); String x = listget();以上代碼將會被中間編譯為
List list = new ArrayList();
listadd(Hi); String x = (String) listget();
我感覺Java的泛型很假其實只是表面性的工作只是在編譯時刻進行檢查運行時都是Object然後轉換成相應的類型在Java中基本類型(intboollong)還不能作為類型參數Java的泛型實質上沒帶來效率的提升相反C#的泛型實現就不一樣了一切都在運行時確定談語言相對於Java我還是喜歡C#語言不過學習Java真方便鼠標點在某個方法上某個類上按住Ctrl就看見源代碼NET現在也有這方面的東西了不過感覺還是Java直接我感覺學習Java要比NET快因為很透明大概這需要一定的基礎支撐吧有了一定的思想技術平台間的遷移我覺得不難如果你用過C#又用過Java但是你若不知道C#和Java之間的差別那就不好了這說明你在被技術牽著走沒有自己的思考我們需要的不是精通N多的XXX框架我們需要了解這些框架的架構設計能做出靈活選擇知道各個框架的特點和弱點來讓其為我們服務我們要用最合適的技術來解決遇到的問題基礎很重要像NETJava這些高層的技術背後其實都是一些基礎的思想各個語言各個框架各個平台大同小異我們需要領悟這些領悟了這些我認為你學習其他應用方面的技術就不會太難一切都是水到渠成
感覺跑題了很多……
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26255.html