Java為什麽需要基本類型
阿新 • • 發佈:2018-03-28
靈活 接下來 sdn html 場景 tps aid article 速度
提問
首先拋出問題吧:Java為什麽需要基本類型?
最開始遇到這個問題的場景不記得了,但是一查之下,發現一個問題:Java既然是面向對象的,宣稱一切都是對象,為什麽還有基礎類型。
先上結論
為了性能+慣性
解決過程
先理解下java的數據構成:java的基本數據類型有八種
簡單點就是,基本數據類型+引用型數據類型。
接下來查查為啥還要基本數據類型呢?
因為這樣子,性能上的追求。
那麽進一步,為啥棧要比堆快呢?其實這個就是個博弈,要靈活性(堆,動態分配內存空間),就要舍棄速度;要速度(棧,速度快,嚴格限制進出方式),就要犧牲靈活性。
具體看這裏:棧和堆的區別是什麽? 為什麽說棧的速度快,堆的速度慢?
但是java發展這麽多年,想現在這點速度差別應該不算什麽事兒了吧,為啥還有。
仔細查查看,發現還是一開始出現的這個東西,一直沿用了下來唄,讓面向對象的代碼中,出現了一絲絲的不和諧。
最後說下裝箱和基本類型:
基本類型都有對應的裝箱類型,但聲明的時候看聲明情況判斷是否是對象:
int a = 0; // 基本類型 Integer b = 1; //自動裝箱 Integer c = new Integer(3); // 對象聲明
可以自動裝箱不代表就是基本類型,比如
String str = "str";
Java為什麽需要基本類型