我知道栈能引用堆的内存空间 那么栈能引用栈内的内存空间吗 ? String a = "abc" String b = "abc"  a 和 b指向的是 什么呀?

解决方案 »

  1.   

    在JAVA VM(虚拟机)中有一个字符串池,专门用来存储字符串。如果遇到String a=”hello”时(注意没有NEW,不是创建新串),系统在字符串池中寻找是否有”hello”,此时字符串池中没有”hello”,那么系统将此字符串存到字符串池中,然后将”hello”在字符串池中的地址返回a。如果系统再遇到String b=”hello”,此时系统可以在字符串池中找到 “hello”。则会把地址返回b,此时a与b为相同。我知道栈能引用堆的内存空间 那么栈能引用栈内的内存空间吗 ?
    个人认为单纯的这样讲没有意义。
    局部变量 存在于栈中。
    实例变量 存在于堆中。
    通过实例变量与局部变量的调用关系或者引用关系,可以明了的看到问题所在!