long len = 9849435934523;
这个时候就会出错,编译器在读取的时候,将其认为是Int型。
所以正确的为:
long len = 9849435934523L;
//
long len = 1L;
int age = len;
出错:编译器在会认为len的类型无法放进int型中的。
注:final leng len = 1L; 也是long型的
//总结
常量在编译时:
小数 认为是 double型
整数 认为是int型的
所以
对long型赋值:加L,就将其读取出Long型
对float型赋值:加F,就将其读取float型
此外,对于
final long len = 1L;
int age = len;
编译器只判断类型是否兼容。这里就会出错。
在进行赋值的时候,才会去判断目标类型能否"容得"下该值,如果行则好,不行就会报编译错误。
//final
只允许赋一次值,可以在编译时,也可以在运行时。