==和equals方法的区别和使用

1.当使用‘==’的时候,只有当两个引用变量指向同一个对象时,‘==’才会返回true;

2.当使用equals方法的时候,只需要满足两个变量所指向的内容相同即可;

3.代码展示如下:

package com.object.test;

public class ObjectEqualsTest {
	public static void main(String[] args) {
		//对于基本数据变量而言,i1和i2指向的都是Integer对象包装类;
		int i1 = 65;
		int i2 = 65;
		System.out.println("输出i1和i2是否相等"+(i1==i2));
		//针对于字符串进行比较
		//使用==判断两个字符串是否相等
		String str1 = "测试代码";
		String str2 = new String("测试代码");
		System.out.println("当时用==判断是输出的结果"+(str1==str2));//输出结果为false,因为他们指向的是两个对象;
		System.out.println("~~~~~~~~~~");
		System.out.println(str1.equals(str2));//输出结果为true,只需判断内容相同即可;
	}
}
4.JVM常量池保证相同的字符串直接量只有一个,不会产生多个副本。

5.使用new关键字创建字符串对象的时候,他被保存在运行时内存区,只有当正真使用的时候米慧聪堆内存中寻找对应数据;

6.equals方法的原则:

(1)自反性;对任意的equals方法重写都将返回true;

(2)对称性;X<--->Y的关系;

(3)一致性;等价比较的信息没有发生改变;

(4)对任何不是null的值,将一定返回false;

猜你喜欢

转载自blog.csdn.net/m0_37248802/article/details/79007990