难道只有我一个人这道题运行不了吗?为什么第二个字符串要用new,而不可以直接像第一个那样子?
我也好奇这个,,
字符串可以直接赋值的,运行出错应该不是这的问题,你看看是不是忘加分号之类的。
他给的例子应该就是为了让你了解字符串有两种创建方法,
string a = “啦啦啦”;
string b = new string(“啦啦啦”);
一种给一个而已。
new出来其实不如直接赋值,new一个string的话会占用两个空间,直接赋值只需要一个。反正字符串常量都是不可重新赋值的,我还是喜欢直接赋值,还省事还省地。
由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下:
String s = “abc”;
s = “Java语言”;
其实按照面向对象的标准语法,其格式应该为:
String s = new String(“abc”);
s = new String(“Java语言”);
只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。例如String s = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s申请的空间。
用String不可以new一个对象吗
创建对象时,如果你要用StringBuilder或者StringBuffer需要new关键字