java - Java中以下字符串创建了多少个对象

标签 java string object

Possible Duplicate:
How many java objects generated by this code? and why?

我对以下内容很困惑

String s1 = new String("Java");
String s2 = new String("Java");

这里创建了多少个对象?

String s1 = new String("Java");
String s2 = new String("Ruby");

这里创建了多少个对象?

String s1 = new String("Java");
String s2 = "Java";

这里创建了多少个对象?

String s1 = "Java";
String s2 = "Java";

这里创建了多少个对象?

最佳答案

您的代码的第一部分:

创建了 2 个对象。 如果字符串池中不存在“Java”,则会创建一个字符串并将其添加到其中。

您的代码的第二部分:

创建 2 个对象,如果字符串池中不存在“Java”和“Ruby”,则创建两个字符串并将其添加到其中。

您的代码的第三部分:

已创建一个对象。并执行相同的条件以添加到字符串池。

您的代码的第四部分:

如果字符串池中不存在“Java”,则仅创建一个对象。否则没有创建新对象。

关于java - Java中以下字符串创建了多少个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497335/

相关文章:

java - Jsoup 在标记后选择文本

java - 从 map 中获取数组并转换键

java - JComboBox中如何准确显示字符串?

c# - 在 C# 中检查是否为字符串格式的条件

java - 我对 XPath 做错了什么?

java - 在servlet内读取excel文件(多部分数据)

php - 比较一个字符串和一个 php 数组,只显示匹配项

PHP 方法范围绑定(bind)

javascript - 对对象数组进行过滤和映射

javascript - 比较两个对象中存在的属性