2007-10-18
讨论一下
3、有下面程序:
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的生命方式比较的是字符串引用。
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的生命方式比较的是字符串引用。
评论
抛出异常的爱
2007-10-19
bill.end
2007-10-19
fancool 写道
为什么str3里会有3个“abcd”啊
还是不明白
哪位能清楚的给我解释一下 谢谢了```
还是不明白
哪位能清楚的给我解释一下 谢谢了```
我没说str3里有3个“abcd”!!!!
fancool
2007-10-18
str1和str3的这两种声明字符串的区别到底在哪里啊```
谢谢各位 帮助小弟一下
谢谢各位 帮助小弟一下
fancool
2007-10-18
为什么str3里会有3个“abcd”啊
还是不明白
哪位能清楚的给我解释一下 谢谢了```
还是不明白
哪位能清楚的给我解释一下 谢谢了```
抛出异常的爱
2007-10-18
汗你找的例子用的变量都是本论坛某个人起的。。。。一点都没变
bill.end
2007-10-18
String是Immutable“类型”的
str1和str2的赋值后,内存中只有1个“abcd”
str3和str4的赋值后,内存中有3个“abcd”, 各自申请一块内存
无论哪种方式“==”都是比较地址的
我说的队不?
str1和str2的赋值后,内存中只有1个“abcd”
str3和str4的赋值后,内存中有3个“abcd”, 各自申请一块内存
无论哪种方式“==”都是比较地址的
我说的队不?
fancool
2007-10-18
大哥给我说一下嘛
我真的不明白。。。
我真的不明白。。。
ddandyy
2007-10-18
请去坛内搜索......
P.S: 谁告诉你str1比较的是字符串了
P.S: 谁告诉你str1比较的是字符串了
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 16669 次
- 性别:

- 来自: 成都

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
关于struts2启动tomcat的 ...
在项目的src目录下创建struts.properties文件 再把这句话写在里 ...
-- by maoweiwer -
关于struts2启动tomcat的 ...
请问楼主,怎么创建???? 说详细些,谢谢. 初学者.
-- by tidelgl -
关于java.lang.ClassCastE ...
今天我也遇到了跟你一样的问题,找了半天,原来我在配置*.hhm.xml文件的时候 ...
-- by kylixlu -
关于java.lang.ClassCastE ...
汗,sofmit居然有这样的程序员,更没想到的是居然被我用google搜到
-- by san_yun -
关于java.lang.ClassCastE ...
大哥些 人呢 帮帮我吧 这个都捆饶我两天了 再不弄太可怜了
-- by fancool






评论排行榜