浏览 2466 次
锁定老帖子 主题:讨论一下
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-18
public class TestString { public static void main(String[] args) { String str1 = “abcd”; String str2 = “abcd”; String str3 = new String(“abcd”); String str4 = new String(“abcd”); System.out.println(str1==str2); System.out.println(str3==str4); } } 输出结果是? A true true B true false C false true D false false 答案是B 请问一下 str1和str3的声明区别在哪里? 为什么用str1的声明方式 比较的是字符串 而用str3的生命方式比较的是字符串引用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-18
请去坛内搜索......
P.S: 谁告诉你str1比较的是字符串了 |
|
返回顶楼 | |
发表时间:2007-10-18
大哥给我说一下嘛
我真的不明白。。。 |
|
返回顶楼 | |
发表时间:2007-10-18
String是Immutable“类型”的
str1和str2的赋值后,内存中只有1个“abcd” str3和str4的赋值后,内存中有3个“abcd”, 各自申请一块内存 无论哪种方式“==”都是比较地址的 我说的队不? |
|
返回顶楼 | |
发表时间:2007-10-18
汗你找的例子用的变量都是本论坛某个人起的。。。。一点都没变
|
|
返回顶楼 | |
发表时间:2007-10-18
为什么str3里会有3个“abcd”啊
还是不明白 哪位能清楚的给我解释一下 谢谢了``` |
|
返回顶楼 | |
发表时间:2007-10-18
str1和str3的这两种声明字符串的区别到底在哪里啊```
谢谢各位 帮助小弟一下 |
|
返回顶楼 | |
发表时间:2007-10-19
fancool 写道 为什么str3里会有3个“abcd”啊
还是不明白 哪位能清楚的给我解释一下 谢谢了``` 我没说str3里有3个“abcd”!!!! |
|
返回顶楼 | |
发表时间:2007-10-19
http://www.iteye.com/topic/11649
|
|
返回顶楼 | |