A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王会涛 中级黑马   /  2014-11-16 08:56  /  1222 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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同一个对象;

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
一个记住:String s2=new String() 等效于String s = ""; 不等效String s = null;
回复 使用道具 举报
cbb 中级黑马 2014-11-16 09:21:50
藤椅
很有用~谢谢楼主分享经验~~
回复 使用道具 举报
谢谢楼主分享,很有用
回复 使用道具 举报
谢谢楼主分享,学到了
回复 使用道具 举报
建议楼主把 ==  和 equals比较的区别顺便加上。
回复 使用道具 举报
再重新赋值后为什么就不 == 了呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马