Object中的方法(1)

                                         让我这个菜鸟淡淡的忧伤一会

1:公司一位大佬建议阅读jdk源码,想想自己感到惭愧!感到羞耻! 想到以前看Java基础的时候经常看到问equals()方法和“==”逻辑运算符的区别,然后自己就去看了一下equals()方法,一点点开始。

public boolean equals(Object obj) {
        return (this == obj);
    }

Object中equals和==是一样的。所以在Object中如果两个对象的引用是一样的,那么两个对象一定就是相同的。

public static void main(String[] args) {
		Integer integer1 = new Integer(5);
		Integer integer2 = new Integer(5);
		System.out.println(integer1==integer2);---------------false
		System.out.println(integer1.equals(integer2));---------------true
	}

当我创建integer1,integer1仅仅只是Integer类的引用并且是储存在栈中,但是new Integer(5)就不同了,new才是真正的创建了nteger对象,并将这个对象设了值,它储存在堆中。

因为 == 对于类的对象比较的是引用,在栈中,这两个对象引用指向的空间不同所以是false,而equals对这两个对象进行比较所以为true。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值