Java:Java中equlas和==的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:Java中equlas和==的区别相关的知识,希望对你有一定的参考价值。
==
比较的是栈内存的地址值,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
基本数据类型如:byte,short,char,int,long,float,double,boolean的值存储在栈内存中,所以==也可以比较基本数据类型的值。
equals
比较的是两个对象的堆内存的值,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
引用数据类型如:接口、类、数组等非基本数据类型每new一次就会重新开辟一个新的堆内存空间,equals比较的是对象的堆内存值。
以上是关于Java:Java中equlas和==的区别的主要内容,如果未能解决你的问题,请参考以下文章