解决方案 »

  1.   

    网上搜索“栈和堆”,有大量解释。
    推荐看黑马程序员——毕向东java基础中的第47个视频,应该在第三天的课程,课程名为概述(内存结构),里面有栈和堆的描述。
      

  2.   

    http://blog.csdn.net/hairetz/article/details/4141043
    这个文章据说被转了很多次,可以看看。
      

  3.   

    我转载过一个博文,就有你说的这个问题的讲解,可以看一下:
    http://blog.csdn.net/sparrow00004/article/details/38760405
      

  4.   


    摘抄一段如下:String是一个特殊的包装类数据。可以用:
      Java代码
      String str = new String("abc");
      String str = "abc";
      两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。而第二种是先在栈中创建一个对 String类的对象引用变量str,然后通过符号引用去字符串常量池 里找有没有"abc",如果没有,则将"abc"存放进字符串常量池 ,并令str指向”abc”,如果已经有”abc” 则直接令str指向“abc”。