• Java中==和equals的比较


    经实际验证,有如下结论:

    1. 对于基本类型(只能用==)
    ==           比较值

    2. 对于基本类型的封装类(Boolean ,Integer,Double,Long,Float
    ==           比较地址
    equals    比较值

    3. 对于类对象
    ==           比较地址
    equals    比较值

    4. 对于String
    ==           比较地址
    equals    比较值


    验证用代码如下:

    import java.util.ArrayList;

    public class TestEquals {

        public static void main(String[] args) {
     // To validate basic data types
     int intA = 1;
     int intB = 1;
     System.out.println("intA == intB is " + (intA == intB));
     
     // To validate wrapper classes
     Integer integerA = new Integer(1);
     Integer integerB = new Integer(1);
     Integer integerC = integerA;
     System.out.println("------------------------------");
     System.out.println("integerA == integerB is " + (integerA == integerB));
     System.out.println("integerA.equals(integerB) is " + (integerA.equals(integerB)));
     System.out.println("integerA == integerC is " + (integerA == integerC));
     System.out.println("integerA.equals(integerC) is " + (integerA.equals(integerC)));
     
     // To validate ordinary classes
     ArrayList<Integer> arrayListA = new ArrayList<Integer>();
     arrayListA.add(integerA);
     ArrayList<Integer> arrayListB = new ArrayList<Integer>();
     arrayListB.add(integerA);
     ArrayList<Integer> arrayListC = arrayListA;
     System.out.println("------------------------------");
     System.out.println("arrayListA == arrayListB is " + (arrayListA == arrayListB));
     System.out.println("arrayListA.equals(arrayListB) is " + (arrayListA.equals(arrayListB)));
     System.out.println("arrayListA == arrayListC is " + (arrayListA == arrayListC));
     System.out.println("arrayListA.equals(arrayListC) is " + (arrayListA.equals(arrayListC)));

     // To validate String class
     String stringA = new String("123");
     String stringB = new String("123");
     String stringC = stringA;
     System.out.println("------------------------------");
     System.out.println("stringA == stringB is " + (stringA == stringB));
     System.out.println("stringA.equals(stringB) is " + (stringA.equals(stringB)));
     System.out.println("stringA == stringC is " + (stringA == stringC));
     System.out.println("stringA.equals(stringC) is " + (stringA.equals(stringC)));
        }
    }

    执行结果为:

    intA == intB is true
    ------------------------------
    integerA == integerB is false
    integerA.equals(integerB) is true
    integerA == integerC is true
    integerA.equals(integerC) is true
    ------------------------------
    arrayListA == arrayListB is false
    arrayListA.equals(arrayListB) is true
    arrayListA == arrayListC is true
    arrayListA.equals(arrayListC) is true
    ------------------------------
    stringA == stringB is false
    stringA.equals(stringB) is true
    stringA == stringC is true
    stringA.equals(stringC) is true

  • 相关阅读:
    android实现简单计算器
    象牙塔尖
    Jquery 限制文本框输入字数【转】
    jquery 文字向上滚动+CSS伪类before和after的应用
    鼠标移入 移出div div会消失的处理
    ionic 项目分享【转】
    JS+CSS简单实现DIV遮罩层显示隐藏【转藏】
    封装鼠标滚轮事件,兼容方法。。。拿去用吧
    3、bootstrap3.0 栅格偏移 布局中的一个特产
    html input[type=file] css样式美化【转藏】
  • 原文地址:https://www.cnblogs.com/jancco/p/2488989.html
Copyright © 2020-2023  润新知