java数据类型问题

当定义一个 long 的数据类型时,书上说需要在数据后加L或小写的l,但在实例中,定义
long n=236L;和long n=236;都正确,这是为什么?谁的对?

都对 L是一个修饰符说明是long数据 不过long是数值型 int范围内可以省却 Long是对象型就不可以省略了.省略了就报错,不信你试试.嘿嘿.别忘记顶我一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-03
long n=236;就是把一个int类型赋值给long类型(int类型自动转换为long);long n=236L;是把int类型的236强制转换为long类型,然后再赋值给n。如果是float n = 236.0;则会报错,必须是:float n = 236.0f;因为236.0默认是double,它是不能自动转换为float的。
第2个回答  2011-09-03
当赋值的范围在int范围里的时候,加不加都一样,当大于Integer.MAX_VALUE的时候,必须加L

你可以试试long n = 10000000000; 编译是通不过的,加上L才行本回答被提问者采纳
第3个回答  2011-09-03
数据存储的大小不一样,加上L会强制用8个byte存储,不加L会用4个byte存储,所以当值大于2的32次方时会出现问题
第4个回答  2011-09-03
数值小于int的最大值就没事,超过就会编译报错,例如:
.java:7: 过大的整数: 30000000000
long n3 = 30000000000;
^