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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

教程没有详细说明,大家知道吗?

8 个回复

倒序浏览
String 本身是一个类,所以String="abc"开辟了一个空间 当使用new语句的话,就会再开辟一个空间
字符串本身会占用一个空间
回复 使用道具 举报
这条语句,使用了一个带有String类型参数的构造函数String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。
既然是副本,那就相当于克隆了一个。。
它相当于。String str = null;   String s1 = “abc“;  str = new String(s1);
看清楚了吗,这里边存在两个对象:一个是str,一个是s1。
回复 使用道具 举报
abc是一个  new 就是又1个
回复 使用道具 举报
String有个构造器,返回的是String对象;“abc”本身是一个String对象,构造出来的是这个String对象的副本。
public String(String original)初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。由于 String 是不可变的,所以无需使用此构造方法,除非需要 original 的显式副本。
回复 使用道具 举报
String 本身是一个类, 当使用new语句的话,就会开辟一个空间字符串会占用一个空间,string="abc"又开辟一个空间字符串,所以会出现两个对象。
回复 使用道具 举报
1.    "abc"本身就是一个直接常量 所有在把他存在内存数据区中
2.    new String("abc")  在堆内存中;
回复 使用道具 举报
str="abc"不是加到字符串常量池中么 如果有“abc”则使用常量池中的,否则,创建一字符串 “abc” 我想应该加的内存中把
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马