Stirng str1 = new String("abc");Stirng str2 = new String("abc");创建了几个对象
2013-04-08 17:17
309 查看
今天下午看群里有人讨论这个问题,好吧.的确快忘记这个知识点了.
Stirng str1 = new String("abc");
Stirng str2 = new String("abc");
这里产生了3个对象:
第一个是new 创建的new String();
第二个是"abc"对象,str1这个变量指向"abc";
第三个是第二句的new String();
如果再来一句:String str3 = "abc", 则没有创建新的对象,还是3个对象,因为第一没有用new去创建新的实例,第二它会找字符串池里的"abc",如果有责指向它,没有的话才创建;
解释下字符串池:他是一个由字符组成的一个数组就相当于char str1 =new char[]{a,b,c}; 如果不是遇到新的字符串,则直接指向原来的串池,如果遇到新的字符串则创建一个新的串池,个人以为因为java基本类型中中没有String类型,所以当出现新的字符串的时候需要以上面char 类型来创建一个数组对象。
Stirng str1 = new String("abc");
Stirng str2 = new String("abc");
这里产生了3个对象:
第一个是new 创建的new String();
第二个是"abc"对象,str1这个变量指向"abc";
第三个是第二句的new String();
如果再来一句:String str3 = "abc", 则没有创建新的对象,还是3个对象,因为第一没有用new去创建新的实例,第二它会找字符串池里的"abc",如果有责指向它,没有的话才创建;
解释下字符串池:他是一个由字符组成的一个数组就相当于char str1 =new char[]{a,b,c}; 如果不是遇到新的字符串,则直接指向原来的串池,如果遇到新的字符串则创建一个新的串池,个人以为因为java基本类型中中没有String类型,所以当出现新的字符串的时候需要以上面char 类型来创建一个数组对象。
相关文章推荐
- Java 中String 类特别之处(不可变?+运算符重载?new String("abc")创建了几个对象?)
- 关于 new String("xyz")创建几个对象的理解
- 关于 new String("xyz")创建几个对象的理解
- new String("aaa")创建了几个String对象?
- new String("abc")创建了几个对象
- 关于 new String("xyz")创建几个对象的理解
- 关于 new String("xyz")创建几个对象的理解
- new String("aaa")创建了几个String对象?
- (转)new String("abc")创建几个对象的解释
- new String("aaa")创建了几个String对象?
- new String("abc")创建几个对象的解释
- String a=new String("abc")创建了几个对象
- String s = new String( "xyz "); 创建了几个对象?
- String s=new String("abc")创建了几个对象?
- String s=new String("xyz");创建几个String对象的问题
- String a=new String("b"+"c")会创建几个对象?
- 黑马程序员,黑马论坛-----String s="a"+"b"+"c"+"d"创建了几个对象
- String s=new String("abc")创建了几个对象?
- 关于String a=new String("a")创建几个对象问题的正确答案
- String s=new String("xyz")及String s="a"+"b"+"c"+"d";创建几个String对象的问题