黑马程序员技术交流社区
标题:
string类
[打印本页]
作者:
jiahuiting
时间:
2013-9-25 16:50
标题:
string类
string s1="abc" 与 string s2=new string("abc") 的区别是什么记得当时视频上说,s1==s2(false) 但是s1.equal(s2)(true)
为啥呢。equal不是判断地址相同的本意么
作者:
赖龙威
时间:
2013-10-2 00:16
public class test {
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
System.out.println("s1==s2" + s1==s2);
System.out.println("s1.equal(s2)" + s1.equals(s2));
}
}
复制代码
结果和你说的一样。==是比较引用的是否是一个对象。而equal()方法比较的是字符串是否相等。
作者:
娟5子
时间:
2014-1-9 14:08
当系统执行string s1="abc";时会将s1指向"abc"而string s2=new string("abc") 系统会重新分配一个空间给"abc"并将s2指向该空间 建立了一个对象
引用型变量进行==运算时也就是它们的地址进行运算所以s1==s2(false)
equals比较的是内容
作者:
My_work
时间:
2014-3-2 16:47
string s1="abc";的意义是赋值,string s2=new string(“abc”);的意义是初始化
作者:
微笑╮安葬了眼
时间:
2014-3-19 18:04
先是在内存里创建了一个abc字符串,然后s1指向abc,s2要指向abc,内存中已经有abc,所以s1和s2地址相同,s3指向的是新字符串abc的地址,所以s1与s3不同,s1==s2但s1!=s3,因为s1,s2,s3是引用,比较的是地址而不是内容,所以有这个结果,比较值是否相同应该用。equal函数而不能直接用==
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2