最近遇到的JAVA怪知识:1.String本身就是final的,为什么还有"private static final String"这种写法? String是引用类型,final修饰类表示String对象的值不可变,但变量的引用可变,用final再修饰变量就 引用不可变,成了彻底的常量了。还比如,你用final修饰ArrayList变量,引用不可变,但ArrayList容器内的内容可变。2.两个int类型的较大的值相乘,是不会得到long类型的"大数"。只会溢出。具体的原理,要看这个数在内存怎么存储的。要计算的话,只能将一个int强转为long。又怪又小又烦人。bug。