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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Xee 初级黑马   /  2018-5-2 08:52  /  1120 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Xee 于 2018-5-2 08:53 编辑

String初始化过程:
这里我认为主要分为两种:
1.调用构造 String str = new String();;
2.不调用构造 String str = "";
两种情况都有一个关键点在与:private final char value[]; 这个value的初始化过程。


情况一:String str1 = "abc";
情况二:String str2 = new String (str1);
通过这两种情况来看,首先会在方法区里面创建一个值为"abc"的字符串并分配地址值。根据API所提供的介绍看,这里会调用构造

这里的this.value数组别final所修,采用的是构造初始化。
而第二种情况相当与先调用了

然后再由 String original 也就是这里的str1去完成value的初始化,然后再把str2.value指向str1.value
这样的情况我觉得可以等效于String str3 = new String("abc");这里就找到了private final char value[]初始化的源头,也就是我猜想的String初始化的过程,燃鹅并没有什么卵用。

3 个回复

倒序浏览
Xee 来自手机 初级黑马 2018-5-2 10:08:38
沙发
十五个字
回复 使用道具 举报
刘铮 来自手机 中级黑马 2018-5-2 13:19:28
藤椅
随便评论下不知道有没有十五个字
回复 使用道具 举报
然而我根本看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马