黑马程序员技术交流社区

标题: 字符串区别几种写法,简单记忆 [打印本页]

作者: 王会涛    时间: 2014-11-16 08:56
标题: 字符串区别几种写法,简单记忆
1.字符串时一个特殊的对象,字符串一旦被初始化,就不可以被改变;
(1)比较两种写法的区别:
String s1="abc";
String s2 = new String("abc");
s1在内存中是一个对象;
s2在内存中是两个对象;new是一个对象,“abc”是一个对象
(2)比较三种结果的区别:
String s1="abc";
String s2 = new String("abc");
String s3="abc";

s1==s2;   false 原因:s1、s2是两个对象
s1.equals(s2);  true 原因:String类复写了Equals方法,该方法判断字符串是否相同
s1==s3;  true 原因:建立s1对象后,又建立一个s3,发现常量池中,已经有abc字符串,为了节约内存,直接把S3的引用指向和s1同一个对象;

作者: 王会涛    时间: 2014-11-16 09:00
一个记住:String s2=new String() 等效于String s = ""; 不等效String s = null;
作者: cbb    时间: 2014-11-16 09:21
很有用~谢谢楼主分享经验~~
作者: 金福林    时间: 2014-11-16 09:57
谢谢楼主分享,很有用
作者: 暴君    时间: 2014-11-16 10:29
谢谢楼主分享,学到了
作者: 与梦逆风而行    时间: 2014-11-16 22:56
建议楼主把 ==  和 equals比较的区别顺便加上。
作者: 迷失的小Z    时间: 2014-11-16 23:15
再重新赋值后为什么就不 == 了呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2