java吧 关注:1,252,526贴子:12,738,007
  • 2回复贴,共1

怎么去理解用“==”和“equals”比较两个变量的存储,大神请进!

取消只看楼主收藏回复

String strOne = new String("w");
String strTwo = new String("w");
strOne和strTwo用“==”和“equals”比较我能理解。
返回结果是false和true
==比较的是堆里面对象占用栈里面的内存地址false
equals比较的是堆里面对象的值true
那下面这个呢?
String str1 = "abc", str2 = "abc";
虽然str1==str2和str1.equals(str2)的结果我知道都是true,但是为什么啊?
该怎么去理解?


IP属地:四川1楼2015-11-04 16:44回复
    他的存储形式是怎样的?
    快来人啊!!!


    IP属地:四川2楼2015-11-04 16:49
    回复
      还是说我可以理解为在初始化str1和str2的时候只创建了一个对象,所以str1和str2所存储的都是对象在堆里所在的首地址?


      IP属地:四川5楼2015-11-04 16:57
      收起回复