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

基礎(chǔ)知識

共八種數(shù)據(jù)類型:4種整型(byte, short, int, long),2種浮點(diǎn)型(float,double),booean,char

類型 名稱 占幾個字節(jié) 范圍 后綴、表示法
整型 byte 1 2^8/2 = -128,最大-128~127 無,超過范圍報(bào)錯
整型 short 2 2^16/2 = 32767,-32768~32767 無,超過范圍報(bào)錯
整型 int 4 2^32/2 = 約21億 無,超過范圍報(bào)錯,默認(rèn)類型
整型 long 8 2^64/2 = 約1000億億 l或L,如果不加則為int轉(zhuǎn)換為long,大于int最大值時(shí)報(bào)錯
浮點(diǎn)型 float 4 最大10^38 必須加f或F
浮點(diǎn)型 double 8 最大10^308 無,超過范圍報(bào)錯,默認(rèn)類型
布爾型 boolean 官方未公布 true/false
字符型 char 2 Java中使用UTF-16儲存字符

整型的賦值

  • 一個整數(shù)默認(rèn)作為int類型處理
    int i = 100
  • 變量是long,小于int最大值,則引發(fā)自動類型轉(zhuǎn)換,int轉(zhuǎn)換為long
    long i = 100
  • 變量是long,大于int最大值,編譯出錯,數(shù)字必須加L
    long i = 100000000000000000 //編譯出錯
    long i = 100000000000000000L //編譯通過
  • 變量是byte、short、int,小于對應(yīng)最大值,引發(fā)自動類型轉(zhuǎn)換
    short i = 10 //int類型的10自動轉(zhuǎn)換為short
  • 變量是byte、short、int,大于對應(yīng)最大值,編譯出錯,可以強(qiáng)制類型轉(zhuǎn)換,但數(shù)字會有變化。
    short i = 10000000 //編譯出錯
    short i = (short)10000000 //數(shù)字會被截?cái)?/code>

字符型

Java中的char類型使用unicode,unicode是一個16位的字符集,最大容量65535,容納了全世界所有書面語言的字符,Java采用UTF-16將unicode編碼為16位數(shù)字,用于儲存或傳輸。
char類型可以通過以下三種方式初始化:
char ch = 'A'
char ch = 65
char ch = '\u0041'
十六進(jìn)制的0041就是A在unicode中的碼點(diǎn),十六進(jìn)制0041的十進(jìn)制數(shù)就是65

浮點(diǎn)數(shù)

  • 浮點(diǎn)數(shù)有兩種表示法:加小數(shù)點(diǎn)、用e
    • 沒有小數(shù)點(diǎn)和e的數(shù)值,都當(dāng)作int
  • float占4字節(jié),32位,其中符號1位,尾數(shù)23位,指數(shù)8位(-128-127),底數(shù)為2,轉(zhuǎn)為底數(shù)10后范圍是±3.40E+38
  • double占8字節(jié),64位,其中符號1位,尾數(shù)52位,指數(shù)11位(-1024-1023),底數(shù)為2,轉(zhuǎn)為底數(shù)10后范圍是±1.79E+308
  • 商業(yè)計(jì)算中需要精確表示一個數(shù),推薦使用BigDecimal
  • 還有三個特殊的數(shù),Infinity、-InfinityNaN,
    1.0/0.0會得到Infinity,1/0則會拋出異常

類型轉(zhuǎn)換

  • 數(shù)值范圍小的類型會自動轉(zhuǎn)換為范圍大的類型,順序如下:
    byte-short-int-long-float-double
    double d = 100, 打印輸出100.0
  • char比較特殊,可以自動轉(zhuǎn)換為int和比int大的類型
    int f = 'A', 打印輸出65
    float f = 'A', 打印輸出65.0
  • ""+任意基本類型,都會轉(zhuǎn)換為String
    • true + "ABC",輸出trueABC
    • 注意:2 + 3 + "ABC",輸出5ABC
    • 注意:"ABC" + 2 + 3,輸出ABC23
  • String轉(zhuǎn)換為基本數(shù)據(jù)類型
    • 基本類型都提供了各自的包裝類:Integer、Float、Boolean等
    • 除了char,其他都提供一個parseXxx(String str)方法將String轉(zhuǎn)換為各自類型
      int i = Integer.parseInt("100")
      double i = Double.parseDouble("100.0")
  • 基本類型轉(zhuǎn)換為String
    • 對所有基本類型,都可以采用String.valueof(任意基本類型)
    • 更常用的,使用""+基本類型,即可轉(zhuǎn)換為String
  • 表達(dá)式中的類型轉(zhuǎn)換
    一個表達(dá)式的返回值總是表達(dá)式中最高級的那個數(shù)據(jù)類型
    123d + 12,返回double類型
    3 / 2, 返回int類型,1.5直接截?cái)酁?
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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