A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ssx0101 中级黑马   /  2012-11-17 18:27  /  1108 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹自祥 于 2012-11-19 16:21 编辑
  1. package pt;

  2. public class Lei {

  3.         /**
  4.          * @param args
  5.          * ==是比较栈内的基本类型变量值和对象引用(类似于C语言的指针)
  6.          * equals是比较栈内对象引用指向的堆内对象或数据池常量
  7.          */
  8.         public static void main(String[] args) {
  9.                 int i1=1;
  10.                 int i2=1;
  11.                 int i3=i1;
  12.                 String s1="abc";
  13.                 String s2=s1;
  14.                 String s3=new String("abc");
  15.                 String s4=s3;
  16.                 System.out.println(i1==i2);//基本类型比较, 栈内值相等,true
  17.                 System.out.println(i1==i3);//基本类型计较,栈内值相等,true
  18.                 System.out.println(s1==s2);//对象引用比较,栈内值相等,true
  19.                 System.out.println(s1.equals(s2));//对象引用指向的数据池常量比较,数据池常量相等,true
  20.                 System.out.println(s3==s4);//对象引用比较,栈内值相等,true
  21.                 System.out.println(s3.equals(s4));//对象引用指向的堆内对象比较,堆内对象相等,true
  22.                 System.out.println(s1==s3);//对象引用比较,栈内值不相等,false
  23.                 System.out.println(s1.equals(s3));//对象引用指向的数据常量和堆内对象比较,数据常量和对象相等,true
  24.         }

  25. }
复制代码
欢迎建议和意见!

点评

注意下,帖子状态。  发表于 2012-11-17 19:05

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
总结的很好!

==如果比较基本数据类型比较的是其值是否相等,如何比较引用数据类型则比较的是其地址是否相等。
equals比较的是两个引用类型地址指向的内容是否相同。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马