“ string”和String x =“ string”

时间:2019-10-07 13:35:28

标签: java string

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

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

,仅使用此:

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

它们相同吗?两者都进入字符串池?谢谢!

第二个示例:

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

此文字是否存储在Java内存中?如果要存储它们,引用是什么?

3 个答案:

答案 0 :(得分:2)

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是对ObjectHash的Java引用,其值来自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.

答案 1 :(得分:0)

router.onReady(() => {
  app.$mount('#app')
})

我认为这个String变量hello将在字符串池中。

String hello = "Hello Java";

System.out.println("Hello Java"); 方法的参数中传递的参数不会永久存储。它将仅临时存储在println方法中,然后在方法调用完成后将其删除。

答案 2 :(得分:0)

要进行深入分析,可以通过1
对于第二个问题,对象存储在字符串池中