• 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和==是表示操作

  • 相关阅读:
    js之判断非空
    解决eclipse添加不了tomcat8的问题
    Java(eclipse)连接MySQL8.0以上版本数据库方式
    面试必备的:Redis和MongoDB的区别
    简述关系型数据库和非关系型数据库
    非关系型数据库MongoDB初探,以及和Redis的对比
    day53:django:URL别名/反向解析&URL分发&命名空间&ORM多表操作修改/查询
    day52:django:ORM单表/多表操作
    day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置
    day50:django:有名/无名分组&FBV/CBV
  • 原文地址:https://www.cnblogs.com/minshia/p/5950969.html
Copyright © 2020-2023  润新知