首頁  >  問答  >  主體

java中整数数值默认是int类型,这句话正确吗?

比如byte b = 1; char c = 1;,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?

高洛峰高洛峰2743 天前1027

全部回覆(5)我來回復

  • 迷茫

    迷茫2017-04-18 10:53:57

    首先,整數型別預設是int。這個毫無疑問。
    其次,在允許的類型範圍內,在此處byte:-128~127
    而整數int 1 在這個範圍,編譯器會對常數自動進行向下的轉換。
    如果超出這個範圍的常數,編譯器直接報錯。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:53:57

    byte,short,char,boolean在底層都是當做int來處理的

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:53:57

    不對的,兩個整形相加,如果小於等於int,則預設是int,如果其中一個為long,則預設按照long;

    你試試申明兩個byte變量,然後相加賦值給另一個byte變量,編譯器會提示出錯的,需要強制型別轉換的

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 10:53:57

    看看這篇:http://www.programgo.com/arti...

    回覆
    0
  • 阿神

    阿神2017-04-18 10:53:57

    分自動轉換和強制轉換的

    回覆
    0
  • 取消回覆