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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不落羽 中级黑马   /  2016-3-14 18:37  /  590 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        Java中equal和==的区别是什么?
1
2
3
4
5
6
7
8
9
10
public class Test1{
    public static void main(String args[]){
            String a="1234";
            String b="1234";
            String c = new String("1234");
            System.out.println(a==b);
            System.out.println(a==c);
            System.out.println(a.equals(c));
    }
}



4 个回复

倒序浏览
String a="1234";
   使用 = 赋值创建String类型的特殊实例,会创建一个对象并储存在常量池中 ;
   String b="1234";
   优先使用常量池中已存在的对象.
   a 和 b 指向的是同一个地址值.
   1. == 比较内容和地址值:  a==b 为 true

   String c =new String("1234"); 创建一个对象存储在一般堆内存中
   2.由于指向不同对象 , 比较地址值 :  a==c 为 false

     String 类中重写的 equals 方法只比较字符串内容 , 不比较地址值
  3. a.equals(c) 为true
回复 使用道具 举报
==比较的事对象地址,equals比较的是两个对象的值是否一样
回复 使用道具 举报
==比较的是对象的地址,也就是是否是同一个对象;equals是比较两个对象的值是否一样;。。
回复 使用道具 举报
==只能比较值,地址值也是值
equals没重写的时候比较的是两个对象的地址值
equals重写后比较的是对象的变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马