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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帆帆帆 初级黑马   /  2018-5-2 12:38  /  932 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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初始化的过程,燃鹅并没有什么卵用。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马