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”)--->堆内存
本文介绍了Java编程中的几个核心概念。首先,讲解了hashCode方法与equals方法的关系及其在哈希查找中的作用。接着,讨论了Java不支持全局变量的原因,强调了引用透明性和命名空间管理。然后,解释了浮点型与双精度型转换的注意事项,指出需要强制类型转换以避免精度损失。此外,还提到了Integer对象的缓存机制,解释了为何-128到127之间的Integer比较会得到不同的结果。最后,探讨了String对象的创建方式,区分了常量池与堆内存的分配区别。
1714

被折叠的 条评论
为什么被折叠?



