==和equels的区别

    xiaoxiao2021-04-13  41

    首先明确个概念:

    1. "=="是基本运算符,判断引用是否指向堆内存的同一块地址;

    2. "equals()"是一个方法,Object类中同样是判断引用是否指向堆内存的同一块地址,但是String,Integer之类的类都重写了equals()方法,使其比较的是对象的值而不是地址;(基本类型中没有这个方法)

    例如:

    int a = 1;int b = 1;

    a==b:true;

    因为基本类型它们在编译期就被确定了值,所以相同的值地址也相同,此处返回true;

    String a = new String("c");String b = new String("c");

    a==b 返回的为false;

    a.equals(b) 返回true;

    因为这里a、b为字符串对象,他们的值不能再编译的时候就确认,所以拥有自己的地址;

    String a = "c"; String b="c";

    a==b 返回值为true;

    这里和上面为什么不同呢?因为这里String定义为字符串常量,而它们在编译期就被确定了所以如此;

    转载请注明原文地址: https://ju.6miu.com/read-668557.html

    最新回复(0)