请教一个关于java中stringbuffer的问题
publicstaticvoidmain(String[]args){StringBuffera=newStringBuffer("A");StringBufferb=n...
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
mb_operate(a, b);
System.out.println(a + "." + b);
}
static void mb_operate(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}
这个程序的结果为什么是AB.B而不是AB.AB呢?求教 展开
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
mb_operate(a, b);
System.out.println(a + "." + b);
}
static void mb_operate(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}
这个程序的结果为什么是AB.B而不是AB.AB呢?求教 展开
2016-06-22 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
String 不是简单类型,而是一个类,它被用来表示字符序列。字符本身符合 Unicode 标准,其初始化方式有两种。
如:String greeting=“Good Morning! \n”;
String greeting=new String(=“Good Morning! \n”);
String的特点是一旦赋值,便不能更改其指向的字符对象,如果更改,则会指向一个新的字符对象 。
StringBuffer是一个具有对象引用传递特点的字符串对象。
StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。
一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象。
如:String greeting=“Good Morning! \n”;
String greeting=new String(=“Good Morning! \n”);
String的特点是一旦赋值,便不能更改其指向的字符对象,如果更改,则会指向一个新的字符对象 。
StringBuffer是一个具有对象引用传递特点的字符串对象。
StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。
一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象。
追问
调用这个mb_operate(StringBuffer x, StringBuffer y)函数中y被付了x的引用,这个不是进行的引用传递吗,为什么b不是指向a
展开全部
public class Ctest2 {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
System.out.println(b.hashCode());
mb_operate(a, b);
System.out.println(b.hashCode());
System.out.println(a + "." + b);
}
static void mb_operate(StringBuffer x, StringBuffer y) {
System.out.println(y.hashCode());
x.append(y);
y = x;
System.out.println(y.hashCode());
}
}
java是值传递,不是引用传递,x改变的是对象内容,x,y在调用mb_operate前后内存地址是不会变的,但x指向的对象内容追加了y的值
追问
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java中只有按值传递,没有按引用传递!
牢记
牢记
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询