有一位Java程序员叫做小明,他非常喜欢用Java开发各种应用程序。有一天,小明在编写一个程序时,发现了一个有趣的Java冷知识。
小明发现一个奇怪的现象:当他在Java中创建两个相同的字符串时,它们并不总是相同的对象。例如,当他执行以下代码时:
```
String str1 = "Hello";
String str2 = "Hello";
```
他发现`str1`和`str2`并不是同一个对象,即使它们的内容是相同的。
小明很吃惊,他认为这是Java的一个Bug。但在仔细研究后,他发现这是Java的一种优化方式。在Java中,字符串字面量是被缓存的,也就是说,如果在代码中使用相同的字符串字面量,它们将引用同一个对象。但是,如果使用`new`关键字创建一个新的字符串对象时,它将创建一个新的对象,即使它与已有的字符串内容相同。
小明很高兴地发现了这个有趣的Java冷知识,并且感到更加深入理解了Java的内部机制。