课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Java培训:equals和=,==的区别
  • Java培训:equals和=,==的区别

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-19

  • 昆明达内Java培训的老师今天给大家讲equals和=,==的区别

    一. ==和equals的区别

    1. ==是运算符

    2. equals是String对象的方法

    一般有两种类型的比较

    1.基本数据类型的比较

    2.引用对象的比较

    1.基本数据类型的比较

    ==和equals都比较的是值是否相等,相等则为true,否则为false

    2.引用对象的比较

    ==和equals都是比较是栈内存中的地址是否相等,相等则为true,否则为false

    注意:

    1. String是一个特殊的引用数据类型,==比较的是字符串对象的引用地址是否一样,equals比较的是栈中的内容是否一致。

    String ss = new String("abc");

    String sss = new String("abc");

    if(ss == sss){

    System.out.println("ss == sss is true");  

    }

    if(ss.equals(sss)){

    System.out.println("ss equals sss is true");

    }

    控制台输出:

    ss != sss

    ss equals sss

    表明:ss和sss在栈中的内存地址不同,但是在堆中的内容是相同的。

    String ss = new String("abc");

    String ssss = ss;

    //判断ss和ssss在栈中的引用地址是否一样

    if(ss == ssss){

    System.out.println("ss == ssss");

    }else{

    System.out.println("ss != ssss");

    }

    //判断ss和ssss在堆中的内容是否一样

    if(ss.equals(ssss)){

    System.out.println("ss equals ssss");

    }else{

    System.out.println("ss not equals ssss");

    }

    控制台输出:

    ss == ssss

    ss equals ssss

    这表明ss和ssss是相同的对象,并且他们在堆中的内容一样

    2.引用对象的比较

    TestBean obj1 = new TestBean();

    TestBean obj2 = new TestBean();

    TestBean obj3 = obj1;

    if(obj1 == obj2){

    System.out.println("obj1 == obj2");

    }else{

    System.out.println("obj1 != obj2");

    }

    if(obj1 == obj3){

    System.out.println("obj1 == obj3");

    }else{

    System.out.println("obj1 != obj3");

    }

    控制台输出:

    obj1!= obj2

    obj1== obj3

    表明obj1和obj2不是同一个对象,在栈中的引用地址不同

    obj1和obj3是相同的对象,在栈中的引用地址相同

    二. =和equals ==的区别

    =表示的是赋值,即将=右边的值赋给左边的变量。equals和==是表示操作

    了解更多详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:【昆明达内Java培训】Java关键字之static

下一篇:Apache Shiro中Apache Shiro Web Support的配置

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56