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”)--->堆内存

原文地址:https://www.cnblogs.com/midiyu/p/15139516.html