本帖最后由 曹自祥 于 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
- }
- }
复制代码 欢迎建议和意见! |