• 目录

==和equals方法

阅读量: 150 编辑

== 和 equals方法

一、区别

  • == 是比较对象的值(地址)是否相等

  • equals 是比较对象的内容是否相等

二、案例

  • s1 = "hello";// 常量池中

  • s2 = "hello"; // 常量池中先找有没有"hello",如果有,那么s2直接指向这个"hello"

  • 所以说 s1 == s2 //true; s1.equals(s2) //true

  • s3 = new String("hello") // 在堆中

  • s1 == s3 //false ; s1.equals(s3) //true

三、代码实战

代码的详细解读,可以参考视频教程

package com.qicong.zj.c13;

/**
 * User: 祁大聪
 */
public class S13 {

    public static void main(String[] args) {
        String s1 = "hello"; //常量池,JVM
        String s2 = "hello";

        System.out.println("s1 == s2, " + (s1 == s2));//true
        System.out.println("s1.equals(s2)," + (s1.equals(s2)));//true

        String s3 = new String("hello");//存放于堆中

        System.out.println();
        System.out.println("s1 == s3, " + (s1 == s3));//false
        System.out.println("s1.equals(s3)," + (s1.equals(s3)));//true

        String s4 = new String("hello");//
        System.out.println("s3.equals(s4)," + (s3.equals(s4)));//true
        System.out.println("s3 == s4, " + (s3 == s4));//false

        String s5 = "helloWorld";

    }
}


  • 目录