不是钻牛角尖,就是想编的程序更高效一点!因为在Java中所有的类创建对象都要new,通过new来开辟内存空间。
可是对于String类确不是这样,使用new String("string") ;就开辟了两个相同字符串的空间。
所以我想知道在源代码中写的东西在内存中是怎么存的?

解决方案 »

  1.   

    确实是这样。
    当String str1="abc";
            String str2="abc";
    时,这两个字符串在内存中是同一个字符串。
    在int i = 1 ;
    str = str + i ;
    的时候,会在堆中新建一个对象,这个对象就是i对应的字符串。
      

  2.   

    Java是高级语言,用不着关心内存机制,若是c或c++就不一样了,特别是c的字符串
      

  3.   

    呵呵,我原来用过一段时间c/c++,所以现在学习Java总想问以前的问题!
    呵呵!
    谢谢啊!
      

  4.   

    真是越问不懂的越多了!
    又出来了个The Runtime Constant Pool,有没有介绍这个的资料?我也希望和你多多交流!我的Email是[email protected]
    qq在公司目前上不了,不好意思,不能即时通讯了!
      

  5.   

    如果想要了解底层的东西,就要看JVM规范,也就是Java虚拟机规范,我这里有一些资料.给你发过去.