计算不同的字符串对象实例

Foo Fighter

String在以下代码段中创建了多少个不同的对象实例?

String s1 = new String("hello");
String s2 = "GoodBye";
String s3 = s1;

不确定我在这里的所有推理。

通过使用newString创建实例的关键字,我猜想它必须是一个对象。但是,令我感到困惑的是String,在new现在考虑了方法之后,是因为它具有(),然后在其中调用了String文字“ hello”吗?

String s2 = "Goodbye";我认为这是一个字符串文字,并且因为字符串实际上是对象,所以即使字符串文字也被视为对象。不能100%确定那是真的。

String s3 = s1;只是指回s1。因此,它不是唯一的。

所以我的答案是2个不同的对象。

请说明我是对是错。

汤姆

正确答案是3。

String s1 = new String("hello");
String s2 = "GoodBye";
String s3 = s1;

编译器将在编译期间将文字“ hello”“ GoodBye”都放入“常量池”,然后由类加载器加载。因此,JVM在加载该类时会自动实习该类使用的所有String文字。有关此内容的更多信息:Java字符串何时被拦截?然后在运行时字符串常量池进行管理。

在运行时,JVM将在到达该行时创建第三个String对象String s1 = new String("hello")

因此,您将拥有三个不同的String对象,其中两个对象包含相同的单词“ hello”那样s1.equals("hello")会是true,但是s1 == "hello"会这样false,因为s1对堆的引用不同于文字“ hello”

该行String s3 = s1仅创建一个变量s3该变量具有对的String对象的复制引用s1不会创建新对象。

另外请注意,您可以使用方法将字符串“手动”添加到String常量池中String#intern所以,s1.intern() == "hello"true的,因为从返回的字符串的参考s1.intern()是参考文本“你好”这是已经在常量池。

如果您想获得有关对象及其位置的某些图形的另一个甚至更详细的解释,可以在javaranch上查看此文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算不同的字符串对象实例

来自分类Dev

字符串实例的行为与对象不同

来自分类Dev

计算对象pascal中字符串中的不同字符

来自分类Dev

如何计算字符串中不同的重复字符

来自分类Dev

计算Python字符串中连续重复字母的实例

来自分类Dev

JavaScript:计算字符串中特定整数的实例

来自分类Dev

计算匹配字符串的实例和累计总值

来自分类Dev

计算Python字符串中连续重复字母的实例

来自分类Dev

如何计算字典中各种字符串的实例数

来自分类Dev

使用 FORMULATEXT 计算字符串的实例数

来自分类Dev

如何计算在文件中找到的字符串实例

来自分类Dev

在不同类实例之间共享的字符串变量

来自分类Dev

使用python查找并计算多个字符串中的子字符串实例

来自分类Dev

分配给单个对象的字符串数组实例

来自分类Dev

如何在Python中从字符串创建实例对象

来自分类Dev

从字符串类型参数列表创建对象实例

来自分类Dev

NodeJS-Javascript从字符串创建对象实例

来自分类Dev

创建从字符串命名的类对象实例?

来自分类Dev

分配给单个对象的字符串数组实例

来自分类Dev

从类名称实例化为字符串的对象

来自分类Dev

来自字符串文字 Typescript 的对象实例

来自分类Dev

在swift 3中从字符串实例化领域对象

来自分类Dev

将实例化对象转换为字符串

来自分类Dev

计算MySQL中一列的不同字符串

来自分类Dev

PHP:计算字符串中的不同数字

来自分类Dev

在计算可序列化对象与字符串的 md5 时获得不同的结果

来自分类Dev

是否可以计算O(n)中字符串中不同子字符串的数量?

来自分类Dev

SPARQL - 计算对象中子字符串的出现次数

来自分类Dev

包含不同但相似字符串的对象的Java hashcode()冲突

Related 相关文章

  1. 1

    计算不同的字符串对象实例

  2. 2

    字符串实例的行为与对象不同

  3. 3

    计算对象pascal中字符串中的不同字符

  4. 4

    如何计算字符串中不同的重复字符

  5. 5

    计算Python字符串中连续重复字母的实例

  6. 6

    JavaScript:计算字符串中特定整数的实例

  7. 7

    计算匹配字符串的实例和累计总值

  8. 8

    计算Python字符串中连续重复字母的实例

  9. 9

    如何计算字典中各种字符串的实例数

  10. 10

    使用 FORMULATEXT 计算字符串的实例数

  11. 11

    如何计算在文件中找到的字符串实例

  12. 12

    在不同类实例之间共享的字符串变量

  13. 13

    使用python查找并计算多个字符串中的子字符串实例

  14. 14

    分配给单个对象的字符串数组实例

  15. 15

    如何在Python中从字符串创建实例对象

  16. 16

    从字符串类型参数列表创建对象实例

  17. 17

    NodeJS-Javascript从字符串创建对象实例

  18. 18

    创建从字符串命名的类对象实例?

  19. 19

    分配给单个对象的字符串数组实例

  20. 20

    从类名称实例化为字符串的对象

  21. 21

    来自字符串文字 Typescript 的对象实例

  22. 22

    在swift 3中从字符串实例化领域对象

  23. 23

    将实例化对象转换为字符串

  24. 24

    计算MySQL中一列的不同字符串

  25. 25

    PHP:计算字符串中的不同数字

  26. 26

    在计算可序列化对象与字符串的 md5 时获得不同的结果

  27. 27

    是否可以计算O(n)中字符串中不同子字符串的数量?

  28. 28

    SPARQL - 计算对象中子字符串的出现次数

  29. 29

    包含不同但相似字符串的对象的Java hashcode()冲突

热门标签

归档