一、编码情况一
long test1 = 1234;
long test2 = 1234L;
long test3 = 123456789789;
long test4 = 123456789789L;
在java里,定义long类型的变量是需要添加“l”或者“L”的。但是在编译时,为什么test1能够通过编译并且输出正确的结果,而test3编译会报错呢?原因是,在java里使用整数时,都会默认为int型,在long test1 = 1234这个语句中,是首先将int型的1234转变为long型的1234,再去给test1赋值的。当数值在int的表示范围内,当然可以,但是,一旦数值超过int范围,就会报错。
二、编码情况二
float test = 12.34;
为什么这个语句在编译时会报错呢?是因为在java里面,输入的浮点数默认为double型,此语句相当于泥转换,当然会报错。此时可以修改为:
float test = 12.34F;
或者
float test = (float)12.34;