Java之泛型為什么需要包裝類


泛型必須是包裝類類型,也就是只能代表引用類型,而不能是基本數據類型,也就是不能是原始數據類型,比如 long  / int / short / byte / double / float / boolean / char ,這些都是不能被引用了。

為什么只能是包裝類類型呢?

因為在程序中,有些結果有些數據可能會返回空值,轉化為基本數據類型比如 int 就會發生異常,因為類似於 int 這些是沒有 null 值可言的。但是基本數據類型對應的如 Integer 這些包裝類類型就不會,因為對象可以為 null 值。

那,有包裝類就好了呀!正所謂,Java 一切皆是對象,干嘛還需要基本數據類型呢?咋全部創建個對象不行嗎?

是呀,這又是為什么?這主要是基於程序性能的考量的,基本數據類型的定義是存放在棧中的,但是我們創建對象而引出來的實際數值則是放在堆里的,堆的速度遠遠不如棧。而且基本數據類型變量的創建和銷毀都非常快,而類定義的變量還需要 JVM 去銷毀。沒錯,就是因為考量了程序性能的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM