见下面两题:
将本实验的实验内容1中的
        long l=3615L;
 改为:
 long l=3615;  会出现什么情况?为什么?
 
 4.将本实验的实验内容1中的
        float f=0.23F;
 改为:
 float f=0.23;
 会出现什么情况?为什么?求解答求助

解决方案 »

  1.   

    不加L的话,貌似默认就是int型了。当给long赋值一个超过int范围的值的时候,会出问题。
      

  2.   

    不加L默认是int,int转为long是安全的,所以会自动转,能编译通过
    浮点数不加F默认是double类型,double转float可能损失精度,因为不会自动转,编译是通不过的
      

  3.   

    如果超过int的取值范围还不加L,那么也会直接报错了
      

  4.   

    正解,java中对字面的数值是以int的形式来表示的
     例如:long l= 6553555522222
    报错:The literal 6553555522222 of type int is out of range 
      

  5.   

    不加L的意思是 先有一个int类型的值3615  赋值给了long类型的l所以当3615这个值超过int的取值范围时会报错而加L的意思是 3615L原本就是个long类型 在赋值给了long类型的l比如
    long l=8888888888;
    long l1=8888888888L;
    第一行会报错 第二行不会
      

  6.   


    =================
    已经表达比较清楚了,可能你要理解数量的默认类型,与自提升的是哪些类型。
    例如:
    char c = 'a';
    int i = c;
    long l = i;
    这样的赋值都是正确的。