答:
- 基础数据类型比较:只能使用==,比较值是否相等
- 引用数据类型比较:
- 没有重写equals方法:==和equals没有区别,比较的都是引用是否指向了同一块内存
- 重写了equals方法:equals比较的是引用的对象内容是否相等(在javaBean规定中当重写equals时必须重写hashCode,两个对象的equals相等,hashCode也必须相等,如果不相等就会造成相同的对象在HashSet存储中存储两次)
答:1. 栈内存存储的是局部变量,而堆内存存储的是实体
2. 栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短
3. 栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时回收
原文:https://www.cnblogs.com/xiqingbo/p/interview-01.html