java中equals与==的区别
来源:互联网 发布:it程序员失业潮 编辑:程序博客网 时间:2024/06/08 11:49
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。
java语言的本意来说:如果没有重写(override)
新类的equals(),则该方法和 == 操作符一样在两个变量指向同一对象时返回真,(即比较的是引用而不是内容)
但是java推荐的是使用equals()方法来判断两个对象的内容是否一样.比如String,Date,File类就已经通过覆盖equals()方法来比较对象内容而不是引用
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
JAVA的对象存储机制里,new出来的一定是对象,而对象在内存中的存贮位置在Heap(堆)中,而基本类型在程序中出现的比较频繁(注:JAVA中的基本类型为8中,分别是:boolean,char,byte,short,int,long,float,double),所以通过new产生这些对象而将其放入在heap中效率反而不高,所以JAVA直接采取C/C++的方式,也就是不以new来分配其空间,而是产生一种所谓的“automatic”变量(不在是reference的形式),来解决效率的问题,此类变量直接放数据值,并且置于stack(栈)中,因为stack在空间的分配和释放上,效率要好的多。而恰恰是这种在内存中位置的不同,在stack中为基本类型变量分配空间时,如果stack中有一样的数据时,将不在创建新的数据,所以导致这个时候比较的两个基本类型值时,即使用==也是true。
例1:
java 代码
例2:
java 代码
- 【java中==与equals的区别】java中==与equals的区别
- java中equals的用法,与“==”的区别
- java中“==”与equals区别
- java中equals与==区别
- Java中"equals()"与"=="区别
- Java中equals()与==区别
- Java中equals与==区别
- java中“==” 与 equals 区别
- java中equals与==的区别
- java中equals() 与==的区别
- java中“==”与“equals”的区别
- java中“==”与“equals”的区别
- Java中==与equals的区别
- java中equals与==的区别
- java中equals与==的区别
- Java中== 与 equals的区别
- java中== 与equals的区别
- java中==与equals的区别
- ArrayList Vector LinkedList 区别与用法
- eclipse 3.4+ jre 1.6.0 启动错误
- 在RED HAT Linux操作系统上安装MYSQL 5.0.26数据库的方法
- wince内存配置
- [转帖]中国民间秘术
- java中equals与==的区别
- RedHat Enterprise Linux 4下安装Apache2.2.3+Php1.5+Mysql5.0.24+GD
- 获取一个目录下的所有文件
- 今天琐记
- 二进制文件的读取并保存为文本文件
- 2440 OV9652摄像头驱动调试
- 如何datagrid分页保持每页先前选择的checkbox的状态?
- 解决SD卡不能读写的问题
- JNI unicode jstring to char*