前言
字符串的比较是一个常见的面试题,这里总结一下常见的关于String的一些题目。
先明确一个概念:
基本数据类型之间的 == 是比较值,引用数据类型 == 比较的是地址值,equals方法比较的是值不是地址
示例一:
public static void main(String[] args) {
String s2="abc";
String s3="abc";
System.out.println(s2==s3);
}
运行结果:
true
分析:使用 “” 创建的字符串会直接存储在常量池中,先检查常量池中有没有“abc"字符串,若没有则添加到常量池中去,并且直接指向它。所以变量s2指向的地址是常量池中的”abc"。同理,s3也指向了常量池中的同一个地址“abc"。由于s2和s3指向的是同一个地址,而”==“比较的是内存地址,所以返回true.
示例二:
public static void main(String[] args) {
String s1="ab", s2="a"+"b", s3="a"

本文深入探讨了Java中字符串比较的常见场景,包括常量池、`==`与`equals()`的区别,以及`new`关键字创建字符串的影响。通过六个示例分析了不同情况下的字符串比较结果,帮助理解字符串对象的内存地址和值的比较。
最低0.47元/天 解锁文章
2726

被折叠的 条评论
为什么被折叠?



