楼主看看java的内存分配,看看堆栈就明白了 堆栈

解决方案 »

  1.   

    放屁。
    String 有个字符串缓冲池,每次直接赋值的字符串会放在里面,如果下次在用的话,就从里面取。
    new的时候不会放进去,是新的。
      

  2.   

    放屁。
    String 有个字符串缓冲池,每次直接赋值的字符串会放在里面,如果下次在用的话,就从里面取。
    new的时候不会放进去,是新的。
     你嘴巴能放干净点吗?
      

  3.   

    放屁。
    String 有个字符串缓冲池,每次直接赋值的字符串会放在里面,如果下次在用的话,就从里面取。
    new的时候不会放进去,是新的。
     你嘴巴能放干净点吗?那你能别瞎指导么?
    TMD,那是内存分配的事么????操
      

  4.   

     其实堆栈可以讲明白java引用中绝大多数的问题,包括这个,直接定义的在栈中,栈中的不重复,new出来的在堆中,aStr == "Hello" 让一个栈中的引用对象和一个栈中的常量比较,那肯定不相等了。bStr 就在栈中定义,栈中的对象又不重复,所以bStr == "Hello"  就相等了。好了,这个问题就说到这里吧,如有意见,也请不要骂人,可以好好讨论技术。
      

  5.   

    asr是一个地址,bsr是一个字符串!!
      

  6.   

    这是我个人见解:
    aStr引用堆里的地址,而bStr引用的是常量池的地址,首先new String("Hello")时,就会在堆里开劈一个空间,然后去常量池看有没有Hello这个常量,如果没有就创建一个,并把引用存放在堆开劈的空间里。而aStr引用的是堆里的地址,所以当aStr与"Hello"比较时两者的地址都不一样所以为false.而bStr却是直接去常量池找,并获取"Hello"的引用