我正在研究Java中的String,我想知道两者之间有什么区别
String hello = "Hello Java";
System.out.println(hello);
,仅使用此:
System.out.println("Hello Java");
它们相同吗?两者都进入字符串池?谢谢!
第二个示例:
if("dog" == "cat")
return true;
此文字是否存储在Java内存中?如果要存储它们,引用是什么?
答案 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
是对Object
中Hash
的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。
对于第二个问题,对象存储在字符串池中