Java的基本數據類型:int , double , float , long, byte , char ,boolean緩存
對應的封裝類:Integer , Double ,Float ,Long , Byte , Char ,Booleanspa
複雜類型和基本類型的內存模型本質上是不同的,簡單數據類型的存儲原理是這樣的:全部的簡單數據類型不存在「引用」的 概念,簡單數據類型都是直接存儲在內存中的內存棧上的,數據自己的值就是存儲在棧空間裏面,而Java語言裏面只有這八種數據類型是這種存儲模型;而其餘的只要是繼承於Object類的複雜數據類型都是按照Java裏面存儲對象的內存模型來進行數據存儲的,使用Java內存堆和內存棧來進行這種類型的數據 存儲,簡單地講,「引用」是存儲在有序的內存棧上的,而對象自己的值存儲在內存堆上的。對象
對基本數據類型封裝以後,封裝類有能夠有方法和屬性,而後就能夠利用這些方法和屬性來處理數據,好比Ingeter對象中有parseInt(String s),能夠把字符串轉換爲int類型等。咱們都知道有些類型的數據會有默認值,基本數據類型跟封裝類型的默認值是不同的,好比int 默認爲0;可是Integer爲null;由於封裝類產生的是對象,而對象默認值爲null。繼承
對於封裝過以後,每一個類型都有對應的緩存:內存
Byte 所有緩存字符串
Boolean 所有緩存get
Integer <=127 緩存原理
Character <=127 緩存
數據類型
Short -128~127 緩存
引用
Long -128~127緩存
Float 沒有緩存
Double 沒有緩存
示例以下:
若是超過緩存範圍,那麼在比較的時候返回結果爲true,若是是使用new的方式來得值,那麼不管在什麼範圍都是false,即不是基本類型。