Heim  >  Fragen und Antworten  >  Hauptteil

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

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

高洛峰高洛峰2743 Tage vor1032

Antworte allen(5)Ich werde antworten

  • 迷茫

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

    首先,整数类型默认是int。这个毫无疑问。
    其次,在允许的类型范围内,在此处byte:-128~127
    而整数int 1 在这个范围,编译器会对常量自动进行向下的转化。
    如果超出这个范围的常量,编译器直接报错。

    Antwort
    0
  • 天蓬老师

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

    byte,short,char,boolean在底层都是当做int来处理的

    Antwort
    0
  • 天蓬老师

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

    不对的,两个整形相加,如果小于等于int,则默认是int,如果其中一个为long,则默认按照long;

    你试试申明两个byte变量,然后相加赋值给另一个byte变量,编译器会提示出错的,需要强制类型转换的

    Antwort
    0
  • PHP中文网

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

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

    Antwort
    0
  • 阿神

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

    分自动转换和强制转换的

    Antwort
    0
  • StornierenAntwort