stringbuffer-StringBuffer的中的append问题

问题描述

StringBuffer的中的append问题

public class Test2 {
public static void main(String[] args) {

    StringBuffer a = new StringBuffer("A");
    StringBuffer b = new StringBuffer("B");
    menthod(a, b);
    System.out.println(a + "," + b);

}

static void menthod(StringBuffer x, StringBuffer y) {
    x.append(y);
    y = x;
}

}

为什么输出结果是AB,B啊?

解决方案

解决方案二:

你这个写的,只是把x.append(y)赋给了形参y,并没有改变实参呀。也就是说,你是写了 y=x,但并没有返回任何值,而第一句x.append(y),确实改变了这个值,但第二个并没有返回任何有效信息

解决方案三:

public class QTest_2 {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
StringBuffer b1 =menthod(a, b);//这样应该明白了吧

System.out.println(a + "," + b1);

}

static StringBuffer menthod(StringBuffer x, StringBuffer y) {
y=x.append(y);
return y;
}
}

解决方案四:

加号和stringbuffer.append()的区别
Stringbuffer 中append()方法

解决方案五:

String是不能够修改的,不能通过赋值来改变原先的内容

解决方案六:

menthod(a, b)在这一步的是,已经把B添加到A上了,所以这个时候a是AB,b是B。

时间: 2024-08-24 11:42:20

stringbuffer-StringBuffer的中的append问题的相关文章

js-jquery 中使用append的问题

问题描述 jquery 中使用append的问题 代码如下:<div id="report" class="ui-grid-b"> <div class='ui-block-a'><strong>支付方式</strong> <div class='ui-block-b'><strong>总金额</strong> <div class='ui-block-c'><st

jquery mobile中通过append添加listview失去格式

问题描述 jquery mobile中通过append添加listview失去格式 var list="<div><ul data-role='listview' >" + "<li><a href='#'>总 计</a></li> " + "<li><a href='#'>已检查</a></li>" + "<l

请解释一下plsql中的/*+APPEND*/的意思

问题描述 DECLAREN NUMBER(3,0);BEGINdbms_output.put_line('start baking.......');DELETE FROM DEPTBACK;INSERT /* +APPEND */ INTO DEPTBACK SELECT * FROM DEPT;SELECT COUNT(*) INTO N FROM DEPT;DBMS_OUTPUT.PUT_LINE('处理数据 '||N||' 条');dbms_output.put_line('end ba

从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接

长久以来,我们被教导字符串的连接最好用StringBuffer.StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence.StringBuffer.StringBuilder.String,他们之间到底有什么联系呢? 1.从类的定义看CharSequence.StringBuffer.StringBuilder.String的关系 下面先贴上这四者的定义(来自JDK1.6) CharSequence是一个定义字符串操作的接口,Strin

辨析Java中的String与StringBuffer及StringBuilder字符串类_java

1 StringString:字符串常量,字符串长度不可变. 2 StringBufferStringBuffer:字符串变量(Synchronized,即线程安全).如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法. Java.lang.StringBuffer线程安全的可变字符序列.在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容.可将字符

详细分析Java中String、StringBuffer、StringBuilder类的性能_java

我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义查看API会发现,String.StringBuffer.StringBuilder都实现了 CharSequence接口,虽然它们都与字符串相关,但是其处理机制不同. String:是不可改变的量,也就是创建后就不能在修改了. StringBuffer:是一个可变字符串序列,它与String一样,在内存中保存的都是一个有序的字符串序

详解Java中StringBuffer类常用方法_java

String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串方面的效率比String高了很多. 在java中有3个类来负责字符的操作.   1.Character 是进行单个字符操作的,   2.String 对一串字符进行操作,不可变类.   3.StringBuffer 也是对一串字符进行操作,但是可变类. public class UsingStrin

Java中String、StringBuffer、StringBuilder的区别详解_java

 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有"final"修饰符,所以可以知道string对象是不可变的. private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在

深入解析Java编程中的StringBuffer与StringBuider_java

String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是StringBuffer的内部实现方式和String不同,在进行字符串处理时,不生成新的对象,在内存使用上要优于String. StringBuffer 默认分配16字节长度的缓冲区,当字符串超过该大小时,会自动增加缓冲区长度,而不是生成新的对象. StringBuffer不像String,只能通过 new