日期:2014-05-20  浏览次数:20677 次

向高手请教!关于Java中String的一些疑问
例如String   str   =   "abc ",同时假设当前栈中没有存储“abc”这个字符串,我知道此时JVM将在栈中创建一个引用变量str和一个字面值为 "abc "的地址,但是会不会同时在堆中创建一个String对象?
    找了3篇帖子就有2种不同的说法,晕阿....

------解决方案--------------------
LZ Java里面对象是不会存放到堆栈里面的。一般是放在堆里面。String str= "abc ";主要是首先检测String pool中是否有”abc“,如果有,就让引用str指向这个对象。如果没有就先创建 "abc "对象,然后让str指向这个对象