关于java成员变量、局部变量的存储问题 经典的堆指向栈,你new出来的对象是放在堆中的,但是你所指向的值是在栈中啊,“abc”就是作为常量存在栈中的,不管你new多少对象,都会指向这里。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那个new 出来的对象肯定是在堆中了,"abc"是存储在字符串常量池中;s1和s2 都是指向 "adc”对应的内存地址,也就是指向同一个地址值,==比较的就是两个地址是否相等;你可以画个图更直观些! 在java中有个地方叫“变量池”,像定义 s1和s2的时候,java会在“变量池”中寻找是否有已经定义过的,如果有就将引用指向它,这样,当我们使用“==”比较时由于它们是同一个对 象所以输出的是ture。String s1 = new String("abc"); String s2 = new String("abc");比较的结果就是false 如果不好理解,你反过来这么理解:假如Test 类有如下的属性:Test a = new Test ();Test b = a;你怎么理解a和b呢? 首先你要了解 == , ==比较的是地址那么你将s1 赋值为abc 就代表在内存中开辟了一个abc的空间你将s2也赋值为abc 如果此时内存中没有abc的空间,就会新建一个如果有就同样会指向已创建的abc那现在就很明白了 ==比较的是地址,而你的s1 和 s2 又指向同一个 地址,所以true是必然的 Swing中JToolBar的tooltip问题 关于awt,swing的问题? 怎么第二次checker.isAlive()还是false java的string的困惑? 超简单的一个问题:有关包的问题,哥哥们帮忙 在Jscript中如何得到一个字符串中某个字符的个数,谢谢 StringToKenizer的应用问题! JAVA对象序列化问题【在线急等!!】 目前java sdk的最高版本,以及哪里有的下载?? 我怎么取得session中的每个变量的值及session的长度,请赐教!谢谢!非常急用!高分!请详细一点,一定给分! 关于String 的疑问 有关数据怎么移植的问题
s1和s2 都是指向 "adc”对应的内存地址,也就是指向同一个地址值,==比较的就是两个地址是否相等;
你可以画个图更直观些!
如果有就将引用指向它,这样,当我们使用“==”比较时由于它们是同一个对 象所以输出的是ture。String s1 = new String("abc");
String s2 = new String("abc");
比较的结果就是false
假如Test 类有如下的属性:
Test a = new Test ();
Test b = a;
你怎么理解a和b呢?
那么你将s1 赋值为abc 就代表在内存中开辟了一个abc的空间
你将s2也赋值为abc 如果此时内存中没有abc的空间,就会新建一个如果有就同样会指向已创建的abc
那现在就很明白了 ==比较的是地址,而你的s1 和 s2 又指向同一个 地址,所以true是必然的