java中==与equals的区别
来源:互联网 发布:dede织梦wap手机模板 编辑:程序博客网 时间:2024/04/30 21:53
在实际编程中,经常会使用到==和equals来判断两个变量是否相同。但也有不少人,尤其是java初学者常常会把它们记得乱七八糟,使用起来更是一团糟。以下是我做的一些总结,希望对大家有所帮助,如有错误请大家不吝指出,谢谢!^_^
说明:测试环境:jdk1.6.0
一、==介绍
==运算符比较的是两个变量的值是否相等,以 a==b为例:
(1)如果a,b都是基本数据类型
1、如果a、b不兼容,则不可比较
2、如果a、b兼容,则那么比较的是两个变量在栈内的数值:
int a=1;int b=1;
结果:a==b:true;
(2)如果a为基本数据类型,b为引用数据类型
1、如果a、b不兼容,则不可比较
2、如果a、b兼容,则比较的依然是a、b具体的值:
int a=1;
Integer b=1;
Integer B=new Integer(1);
结果:a==b:true;a==B:true
(3)如果a、b都是引用数据类型 1、如果a、b不兼容,则不可比较 2、如果a、b兼容,则比较的是对象a、b在栈上的地址,而非该地址指向的堆上的具体数值 简单说,就是比较对象a、b是否是同一对象 String a = "abc"; String b = new String("abc"); String B = new String("abc"); 结果:a==b:false; a==B:false; b==B:false 二、equals介绍 一般情况下,equals比较的是两个对象的内容是否相等,以 a==b为例: (1)如果a,b都是基本数据类型,不可用 (2)如果a为基本数据类型,b为引用数据类型 1、如果a、b不兼容,则结果必然为false 2、如果a、b兼容,则比较的是a在栈上的数值与b在堆上具体的内容: int a=1; Integer b=1; Integer B=new Integer(1); 结果:b.equals(a):true; B.equals(a):true (3)如果a、b都是引用数据类型 1、如果a、b不是同一个类的实例,则结果必然为false 如:Object a=new String("abc");Object b=new StringBuffer("abc"); 2、如果a、b是同一个类的实例,则比较的是对象a、b在堆上的具体内容 String a=new String("abc"); String b=new String("abc"); String c=new String("def"); Object B=new String("abc"); 结果: a.equals(b):true a.equals(c):false a.equals(B):true
c.equals(B):false
- 【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的区别
- 利用ssh在linux系统之间在局域网内传输文件
- MYSQL删除某个字段多余重复记录
- 分享多年美工工作收集的小工具和经验 [转]
- C/C++头文件一览
- struts 2 BaseAction
- java中==与equals的区别
- 关于Light Box被FLASH遮住的问题
- mysql 对null的处理
- OpenCasCade 6.3目录结构
- Interlocked 系列函数的实现
- 指向類成員函數的指針數組
- occ 入门 - 实验工具:Draw Test Harness
- 勉強する
- 我的实际经历:招行普通借记卡,很可能在你不知情的情况下被扣款