java - "string"和字符串 x = "string"有什么区别

标签 java string

我正在研究 Java 中的 String,我想知道它们之间有什么区别:

String hello = "Hello Java";
System.out.println(hello);

并且只使用这个:

System.out.println("Hello Java");

它们是一样的吗?两者都进入字符串池?谢谢!

第二个例子:

if("dog" == "cat")
   return true;

这些文字是否存储在 Java 内存中?如果是商店,引用资料是什么?

最佳答案

String hello = "Hello Java";
  • "Hello Java"是java文字。它被放入 String Pool
  • hello是对 String Pool 中的值的 java 引用
  • 此处恰好创建了一个对象
<小时/>
String hello = new String("Hello Java");
  • "Hello Java"是java文字。它被放入 String Pool
  • hello是对Object的java引用来自Hash其值为 String Pool
  • 此处创建了两个个对象
  • String helloNew = hello.intern();输入 hello 中的字符串到String Pool ,发布new String("Hello Java")并从 String Pool 检索对该值的引用。
<小时/>
System.out.println("Hello Java");
  • "Hello Java"是java文字。它被放入 String Pool
  • 此处恰好创建了一个对象
  • 注意:没关系String hello = "Hello Java"或简单"Hello Java"每个字符串文字都会转到 String Pool.

关于java - "string"和字符串 x = "string"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270682/

相关文章:

java - 使用java获取ping结果

java - IntelliJ IDEA 格式方法和构造函数不同

java - 使用 Dataflow API 启动时将参数传递给模板

java - 在字符之间拆分字符串

Java 在循环中迭代字符串数组并一次返回

xcode - 如何在 Swift 中实现 ROT13 函数?

java - 如何关闭出现在同一页面上的子弹出窗口

Java正则表达式,查找里面的文本

python - 将字符串拆分为相同字母的 block

php - 折旧的 strlen() : Passing null to parameter #1 ($string) of type string is depreciated