Java字符串之谜:String a = "ab"; String b = "a" + "b"; a == b
吗?
在Java编程中,字符串的比较是一个常见且重要的话题。今天,我们将深入探讨一个看似简单却隐藏着不少玄机的问题:String a = "ab"; String b = "a" + "b"; a == b
吗?
问题分解
首先,我们需要理解Java中字符串的两种创建方式及其背后的机制:
- 字面量创建:使用双引号直接创建,如
String a = "ab";
- 字符串拼接:使用
+
运算符进行拼接,如String b = "a" + "b";
字面量创建
当我们使用字面量创建字符串时,Java会在字符串常量池(String Pool)中查找是否存在相同内容的字符串。如果存在,则返回池中的实例;如果不存在,则在池中创建一个新的实例并返回。
String a