请问String a="abc";String b=new String("abc");在内存空间,是怎么分配内存的,这两个是同一个对象吗?为什么它们的hashcode()的哈希码相等?但是用a==b判断结果是false,这hashcode方法是获取的什么,跟内存地址联系吗?

解决方案 »

  1.   

    这种情况,字符串一般不需要new。hashcode和内存地址无必然联系。
      

  2.   

    一般的java书都会讲到吧,这个问题是月经贴,你在论坛搜索下就能找到每月一个的该话题。
      

  3.   

    我有几本书,都没有讲,关于java虚拟机怎么分配内存问题,月经贴好像不卫生,求答案
      

  4.   

    http://topic.csdn.net/u/20100719/00/E282A68D-13AD-4A2C-95AB-D09BF4120012.html
    随便在坛子里搜了一下
      

  5.   

    谢谢,你知道吗?==和equals比较的都是内存地址,只是String重写了equals方法,那个帖子好像没人说呢?