您好,登錄后才能下訂單哦!
java泛型的優點是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
什么是java泛型
泛型,即“參數化類型”。一提到參數,最熟悉的就是定義方法時有形參,然后調用此方法時傳遞實參。那么參數化類型怎么理解呢?顧名思義,就是將類型由原來的具體的類型參數化,類似于方法中的變量參數,此時類型也定義成參數形式(可以稱之為類型形參),然后在使用/調用時傳入具體的類型(類型實參)。
泛型的本質是為了參數化類型(在不創建新的類型的情況下,通過泛型指定的不同類型來控制形參具體限制的類型)。也就是說在泛型使用過程中,操作的數據類型被指定為一個參數,這種參數類型可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。()
泛型的作用:
編譯器檢查我們放入容器的元素是否滿足泛型容器定義的期許,我們只需要告訴編譯器我這個容器是一個處理何種類型的容器即可。編譯器為從容器中取出的元素進行自動轉型。
在泛型介入后,程序員的關注點由2點變為1點:
定義容器處理的類型,這樣放入容器的檢查和取出容器的轉型都交由編譯器來完成。
優點:
1、類型安全
泛型的主要目標是提高Java程序的類型安全。通過知道使用泛型定義的變量的類型限制,編譯器可以在非常高的層次上驗證類型假設。沒有泛型,這些假設就只存在于系統開發人員的頭腦中。
通過在變量聲明中捕獲這一附加的類型信息,泛型允許編譯器實施這些附加的類型約束。類型錯誤現在就可以在編譯時被捕獲了,而不是在運行時當作ClassCastException展示出來。將類型檢查從運行時挪到編譯時有助于Java開發人員更早、更容易地找到錯誤,并可提高程序的可靠性。
2、消除強制類型轉換
泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,并且減少了出錯機會。盡管減少強制類型轉換可以提高使用泛型類的代碼的累贊程度,但是聲明泛型變量時卻會帶來相應的累贊程度。在簡單的程序中使用一次泛型變量不會降低代碼累贊程度。但是對于多次使用泛型變量的大型程序來說,則可以累積起來降低累贊程度。所以泛型消除了強制類型轉換之后,會使得代碼加清晰和筒潔。
3、更高的運行效率
在非泛型編程中,將筒單類型作為Object傳遞時會引起Boxing(裝箱)和Unboxing(拆箱)操作,這兩個過程都是具有很大開銷的。引入泛型后,就不必進行Boxing和Unboxing操作了,所以運行效率相對較高,特別在對集合操作非常頻繁的系統中,這個特點帶來的性能提升更加明顯。
4、潛在的性能收益
泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制類型轉換(沒有泛型的話,Java系統開發人員會指定這些強制類型轉換)插入生成的字節碼中。但是更多類型信息可用于編譯器這一事實,為未來版本的JVM的優化帶來可能。
關于java泛型的優點是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。