java基礎(chǔ)知識回顧-03-標識符&java基本數(shù)據(jù)類型相關(guān)

java基本數(shù)據(jù)類型

四大類、八小類

  • 整數(shù)類型(四種)
    1. 字節(jié)型/位(byte)
    2. 短整型(short)
    3. 整型(int)
    4. 長整型(long)
  • 浮點類型(兩種)
    1. 單精度浮點型(float)
    2. 雙精度浮點型(double)
  • 字符類型(char)
  • 布爾類型(boolean)
    注意,字符串不屬于“基本數(shù)據(jù)類型”,屬于引用類型,深層的儲存方式見文末

各基本類型的儲存大小

數(shù)據(jù)類型 字節(jié) 表示范圍/取值范圍(以下表示除boolean、char,其余為十進制)
字節(jié)型/位(byte) 1 -128~127(-2的7次方到2的7次方-1)
短整型(short) 2 -32768~32767(-2的15次方到2的15次方-1)
整型(int) 4 -2147483648~2147483647(-2的31次方到2的31次方-1)
長整型(long) 8 -9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)
單精度浮點型(float) 4 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方)
雙精度浮點型(double) 8 1.797693e+308~ 4.9000000e-324
字符類型(char) 1 \u0000~\uFFFF(unicode編碼)
布爾類型(boolean) 1 true和false(真和非真)

ps:Markdown表格插入方法參考,插入Markdown行內(nèi)超鏈接方法參考數(shù)據(jù)類型取值范圍參考

需要注意的tips

  1. char(這部分參考java基本數(shù)據(jù)類型取值范圍
    用于存放字符的數(shù)據(jù)類型,占用2個字節(jié),采用unicode編碼,它的前128字節(jié)編碼與ASCII兼容
    字符的存儲范圍在\u0000~\uFFFF,在定義字符型的數(shù)據(jù)時候要注意加' ',比如 '1'表示字符'1'而不是數(shù)值1,
    char c = ' 1 ';
    我們試著輸出c看看,System.out.println(c);結(jié)果就是1,而如果我們這樣輸出呢System.out.println(c+0);
    結(jié)果卻變成了49。
    如果我們這樣定義c看看
    char c = ' \u0031 ';輸出的結(jié)果仍然是1,這是因為字符'1'對應(yīng)著unicode編碼就是\u0031
    char c1 = 'h',c2 = 'e',c3='l',c4='l',c5 = 'o';
    System.out.print(c1);System.out.print(c2);System.out.print(c3);System.out.print(c4);Sytem.out.print(c5);
  2. 浮點型和整型
    10.0 嚴格來講屬于浮點型字面值(區(qū)別于 10 屬于整型)
    稍作延伸,浮點型的概念(來自度娘):
    十進制數(shù),加階碼標志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。簡單來說,為啥叫浮點,浮動變化的是階碼(心里有點方,這個點是看《匯編語言》的時候記住的,沒有實料參考,此處是記憶),可以理解成,整型因為階碼(或者指數(shù)的冪)不變,而浮點類型的冪是變化的,所以浮點的數(shù)值范圍更大。
  3. char 的單獨點
    因為一個漢字占兩個字節(jié),一個Unicode編碼占兩個字節(jié),所以Java中的char類型可以儲存漢字
    樣例

各基本數(shù)據(jù)類型在JVM中的存儲方式(TODO 后面復(fù)習JVM時再與之結(jié)合學習)

附一張JVM的分區(qū)圖,下圖主要突出常量池概念,想說明的一點是,與圖中的“運行時常量池”不一樣,String類型的字符串儲存在“字符串常量池”中,而JDK1.7及之后的版本中,字符串常量池存在于堆中

jvm-1

再看一張圖,我們發(fā)現(xiàn),基本數(shù)據(jù)類型儲存在棧中:
jvm-2

結(jié)論:字符串類型儲存在堆中的字符串常量池中(new String("1")這種參考引用類型儲存,來源參考,基本數(shù)據(jù)類型儲存在棧中
注:JDK1.6(含)之前常量池是放在JVM中的方法區(qū)中的,許多人也叫它“永久代”-java jdk1.7常量池移到哪去了?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容