黑马程序员技术交流社区
标题:
==与equals使用总结
[打印本页]
作者:
ssx0101
时间:
2012-11-17 18:27
标题:
==与equals使用总结
本帖最后由 曹自祥 于 2012-11-19 16:21 编辑
package pt;
public class Lei {
/**
* @param args
* ==是比较栈内的基本类型变量值和对象引用(类似于C语言的指针)
* equals是比较栈内对象引用指向的堆内对象或数据池常量
*/
public static void main(String[] args) {
int i1=1;
int i2=1;
int i3=i1;
String s1="abc";
String s2=s1;
String s3=new String("abc");
String s4=s3;
System.out.println(i1==i2);//基本类型比较, 栈内值相等,true
System.out.println(i1==i3);//基本类型计较,栈内值相等,true
System.out.println(s1==s2);//对象引用比较,栈内值相等,true
System.out.println(s1.equals(s2));//对象引用指向的数据池常量比较,数据池常量相等,true
System.out.println(s3==s4);//对象引用比较,栈内值相等,true
System.out.println(s3.equals(s4));//对象引用指向的堆内对象比较,堆内对象相等,true
System.out.println(s1==s3);//对象引用比较,栈内值不相等,false
System.out.println(s1.equals(s3));//对象引用指向的数据常量和堆内对象比较,数据常量和对象相等,true
}
}
复制代码
欢迎建议和意见!
作者:
潘天功
时间:
2012-11-18 12:21
总结的很好!
==如果比较基本数据类型比较的是其值是否相等,如何比较引用数据类型则比较的是其地址是否相等。
equals比较的是两个引用类型地址指向的内容是否相同。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2