字符串创建

string str1=new string("abc");程序到这里产生几个对象;
string str2="abc";程序到这里产生几个对象;
string str3=new string ("abc");程序运行到这里产生几个对象


Stirng str1 = new String("abc");
这个产生了2个对象,一个是str1,另一个是abc,abc在一个字符串池中str1这个对象指向这个串池
String str2 = "abc"; 运行到这还是2个对象,首先没new,另外它会去看字符串池中有没有相同的字符,如果有则str2直接指向abc,如果不是abc,而是xyz的话则又创建了一个对象
Stirng str3 = new String("abc");如果不看前面的,光看这一行本身也是创建了2个对象,但abc在字符串池里已经有了,所以结合前面的就创建了1个对象
所以总共创建了3个对象
解释下字符串池:他是一个由字符组成的一个数组就相当于char str1 =new char[]{a,b,c};
如果不是遇到新的字符串,则直接指向原来的串池,如果遇到新的字符串则创建一个新的串池

你可能感兴趣的:(C++,c,C#)