第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;
^