jvm如何执行String s="abc";的
时间: 2023-05-21 21:01:07 浏览: 85
答案:当执行String s="abc";时,JVM会在堆内存中创建一个新的String对象,该对象包含字符串"abc"的值,并将该对象的引用赋值给变量s。如果在后续的代码中使用了相同的字符串字面量,JVM会重用之前创建的String对象,而不是创建新的对象。
相关问题
JVM如何执行String s1="abc";String s2=new String("abc");的
答案:
JVM在执行String s1="abc"时,会先在常量池中查找是否存在"abc"这个字符串,如果存在,则将s1指向该字符串;如果不存在,则在常量池中创建一个新的字符串"abc",然后将s1指向该字符串。
而在执行String s2=new String("abc")时,会先在常量池中查找是否存在"abc"这个字符串,如果存在,则会在堆中创建一个新的String对象,并将其引用赋值给s2;如果不存在,则会先在常量池中创建一个新的字符串"abc",然后在堆中创建一个新的String对象,并将其引用赋值给s2。
jvm如何执行 new String("abc")的
答案:当执行 new String("abc") 时,JVM 会首先在常量池中查找是否已经存在 "abc" 这个字符串,如果存在,则直接返回该字符串的引用;如果不存在,则在堆中创建一个新的 String 对象,并将 "abc" 这个字符串的引用赋值给该对象。同时,该对象会被添加到常量池中,以便下次使用时直接返回该对象的引用。