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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 七弦 中级黑马   /  2014-5-29 07:47  /  769 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

很多朋友有关于这样的争议:

String s = new String("ykmaiz"); 创建了几个string object?

发表一下自己的见解。

两个或一个,”ykmaiz”对应一个对象,这个对象放在字符串常量缓冲区,常量”ykmaiz”不管出现多少遍,都是缓冲区中的那一个。

New String每写一遍,就创建一个新的对象,它一句那个常量”ykmaiz”对象的内容来创建出一个新String对象。

如果以前就用过’ykmaiz’,这句代表就不会创建”ykmaiz”自己了,直接从缓冲区拿。

这也关系到我之前说过的一个问题,String的class为什么定义成final的,用到一次就放在缓冲区了。这样大家理解了航。。。

有不对的地方欢迎大家发表见解哈。。。

2 个回复

倒序浏览
支持一下!!!
回复 使用道具 举报
支持一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马