面试常见题:“==”和“equals”的理解

“==”和“equals”的理解:

 

1.object1 == object2 

“==”比较两个对象的内存地址(是否为同一对象),如果是返回true,否则返回false。


2. object1.equals(object2) 

“equals”比较,首先看是否重写了equals()方法,如果没重写(等效“==”),要返回true则两引用必须指向同一对象,否则为false。而String,Date,包装类(Integer,Double等)等重写了Object的equals()方法,这时如果两引用所引用的对象是同一类对象(并不一定是同一对象,可使用instanceof检验)属性内容相等时返回true,否则返回false。

 

3.  内存分为四个部分:heap(堆)\stack(栈)\code segment\data segmet\
其中:堆中存放的是NEW 出来的对象;而栈中存放的是局部变量;而静态变量和字符串常量放在data segment中;剩下的就是代码了,存放在code segment中。理解内存的管理更能方便判断!

 

4. 比较基本数据类型,“==”和“equals”就都是比较值了!


面试中经常遇到,必须理解深刻!

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值