public class ByteTest
{
public static void main(String[] args)
{
byte a = 56;
int bigValue = 2147483647;
short bigvalue2 = 32767;
long bigvalue = 9999999999999L; }
}我理解的是java把byte、short、int取值范围之间的整数常量默认为对应的类型,如56就是byte类型
32767就是short类型2147483647就是int类型。比int大的数默认是什么类型呢?比如程序中的9999999999999L如果不加L会报错。

解决方案 »

  1.   

    比int大的整数是long,9999999999999L如果不加L,编译器会认为它是整数,但是它又超出了整数的范围,所以会报错.加上L后它就是long类型.范围比int大.除此以外,比int大的数据类型还有float,double类型,不过float和double是带小数点的.
      

  2.   

    不过计算的时候byte和char都会转为int...
    而且56的话也可能是char吧
      

  3.   

    Java在进行计算的时候就进行默认的类型转换,转换原则是把精度小的数值转换成精度大的数值,如把int转发成double,把int转换成long型
      

  4.   

    基础类型是int 如果两个类型小于int类型的数字相加会转换为int