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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯我独赞mo 中级黑马   /  2015-11-11 21:42  /  635 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问:String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
           没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

4 个回复

倒序浏览
回复 使用道具 举报
String 常量类型
回复 使用道具 举报

面试的时候尽量回答的全一些,如果你说不全,面试官会问你还有吗。
回复 使用道具 举报
学写了,么么哒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马