专栏名称: 鸭哥聊Java
回复关键字:666 ,领取免费简历模板,Java面试题,Java编程视频等。本号内容涵盖Java源码,JVM源码,Dubbo源码,Spring源码,Spring Cloud微服务架构,分布式高并发架构技术,MySQL性能调优等。
今天看啥  ›  专栏  ›  鸭哥聊Java

真服了Java了,为什么String不能用==比较值啊?

鸭哥聊Java  · 公众号  ·  · 2024-10-08 10:23

文章预览

大家好,我是鸭哥。 最近在网上看到有人问为什么Java的 String 不能用 == 来比较值,我还是忍不住要掰扯几句。毕竟在C++、C#甚至Go里面,很多情况下 == 都能直接用来比较字符串,这事儿咋到了Java这儿,就突然画风变了呢? 如果你是Java程序员,肯定对这两个符号很熟悉: == 和 equals 。乍一看,大家都觉得:哎,这俩东西差不多嘛,结果就常常在实际开发中栽了跟头。 == 在 Java 中, 比较的是两个引用对象是否指向同一个内存地址 。而 equals 方法则 比较的是两个对象的“内容”是否相等 。 来,给大家贴点代码,直观感受下: String str1 = new String( "hello" ); String str2 = new String( "hello" ); System.out.println(str1 == str2);  //  false System.out.println(str1.equals(str2));  //  true 咋回事呢? str1 和 str2 都是“hello”,为啥 == 比较出来是 false 呢?因为 str1 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览