扫码关注官方订阅号
人生最曼妙的风景,竟是内心的淡定与从容!
用双引号创建的相同内容的字符串,均指向同一个引用。而new String出来的是新的一个对象。这也是为什么要尽量避免new String<pre>
public class StringEqualsTest{ public static void main(String[] args) { String s1="Gavin"; String s2=new String("Gavin"); System.out.println("Gavin"==s1); System.out.println("Gavin"==s2); } }
$java StringEqualsTest truefalse
String不是基本数据类型,所以使用==是比较的内存地址。
网上关于Java的==和equals()的介绍很多,随便浏览几篇你就可以明白这个问题,这个问题表面很简单,但是越往后就会越深入。
楼主 可以先去理解下 引用比较和值比较
java中==不是只能判断数值类型吗?答:不是,==可以判断基本数据类型(数值类型)、对象。
==
==比较的是字面值字符串为引用类型,且已建立的字符串在内存不可变,s引用的是""串的内存地址,相同的地址比较自然一样
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用双引号创建的相同内容的字符串,均指向同一个引用。而new String出来的是新的一个对象。这也是为什么要尽量避免new String
<pre>
$java StringEqualsTest
true
false
String不是基本数据类型,所以使用==是比较的内存地址。
网上关于Java的==和equals()的介绍很多,随便浏览几篇你就可以明白这个问题,这个问题表面很简单,但是越往后就会越深入。
楼主 可以先去理解下 引用比较和值比较
java中==不是只能判断数值类型吗?
答:不是,
==可以判断基本数据类型(数值类型)、对象。==比较的是字面值
字符串为引用类型,且已建立的字符串在内存不可变,s引用的是""串的内存地址,相同的地址比较自然一样