Java中==和equals的区别【杭州多测师】【杭州多测师_王sir】
== 的作用:
基本类型:比较的就是值是否相同
引用类型:比较的就是对象的地址是否相同
equals 的作用
equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象地址是否相等,如果对equals方法进行重写,则比较的就是值是否相等
package com.duoceshi.thread; public class StringTest { /** * author:杭州滨江多测师_王sir * @param args */ public static void main(String[] args) { StringTest.test(); //对于==的比较 StringTest.test1(); //对于equals的比较 } public static void test(){ /** * 1、基本数据类型:==比较的就是值是否相同 */ int num = 1; int num2 = 1; System.out.println(num == num2); //true /** * 2、引用数据类型:==比较的就是对象的地址是否相同 */ StringTest stringTest1 = new StringTest(); StringTest stringTest2 = new StringTest(); System.out.println(stringTest1 == stringTest2); //false、2个属于不同的对象 //字符串创建的两种创建方式 //常量池 String str1="hello"; String str2="hello"; System.out.println (str1==str2); //true //比较2个字符串 String str3= new String ("hello"); String str4= new String ("hello"); System.out.println(str3 == str4); //false //重新创建的对象==》通过new的方式创建的属于不同的对象 } private static void test1() { /** * equals方法不能作用于基本数据类型的变量,如果没有对equals方法进行重写 * 则比较的是引用类型的变量所指向的对象地址是否相等 *如果对equals方法进行重写,则比较的就是值是否相等。 */ String name = "duoceshi"; String name1 = "duoceshi"; System.out.println(name.equals(name1)); //true 比较的是引用类型的变量所指向的对象地址是否相等 String name2 = new String("duoceshi"); String name3 = new String("duoceshi"); System.out.println(name2.equals(name3)); //true 比较的是引用类型的变量所指向的对象地址是否相等 System.out.println(name.equals(name2)); //true 比较的是引用类型的变量所指向的对象地址是否相等 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-11-25 win10卸载谷歌浏览器后安装新谷歌浏览器无反应解决办法【多测师_王sir】