java中String和StringBuffer的传参与区别
1.String和StringBuffer的传递
在一个论坛里看到说:java里只有值传递
可以这样理解吧:在java中的引用传递是通过对象实现的。(一个对象的值其实是这个对象的地址)
string:
内存图
StringBuffer:
//输出:a=AB,b=B
内存图
2.StringBuffer
StringBuffer和String都是处理字符串的,StringBuffer中的方法append(),用于连接子字符串相当于String中的“ + ”。
3.String和StringBuffer区别
之说append()这一个方法:在原有字符串的末尾连接其他字符。
String:
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");
字符串连接操作中StringBuffer的效率要比String高的多
String str = new String("welcome to ");
str += "here";
谢谢阅读!