java面试手册-复制内容
1.hashCode 该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到
2.为什么java里没有全局变量?
全局变量是全局可见的,java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突
3.float f=3.4;是否正确?
不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型(窄化)会造成精度损失,因此需要强制类型转换float f=(float)3.4;或者写成float f=3.4F
一个整数默认是int型,一个小数默认是双精度浮点型
4.Integer a=100,b=100,c=129,d=129
a==b true
c==d false
原因:-128~127之间做了缓存。考虑到高频数值的复用场景,这样做还是很合理的,合理优化
5.String str=“a”与String str=new String(“a”)一样吗?
不一样,因为内存的分配方式不一样。
String str=“a”;--->常量池 String str=new String(“a”)--->堆内存