string与stringBuffer
String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承.
StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象它只能通过构造函数来建立,StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中付值的时候可以通过它的append方法.sb.append("hello");
使用的条件是什么:
如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高
Stirng s=new String('abcd') 创建了几个对象?
String s表示声明了一个引用字符串的变量,这个变量存在栈中。new表示在内存中开辟一块新的空间,至于多大的空间,由后面的具体类型决定。通过new关键字生成的对象存在堆中。常量字符串都是在池中,不能算是创建了对象,当然你可以说它是一个String对象(之前已经存在了)。这里总共创建了两个对象。