java - 字符串缓冲区行为

标签 java stringbuffer

public class Test {
    public static void main (String [] args) {
        TestMathRandom x = new Test();
         StringBuffer a = new StringBuffer ("A");
         StringBuffer b = new StringBuffer ("B");
         x.operate (a,b);
         System.out.println(a + "," +b);
    }

    void operate (StringBuffer x, StringBuffer y) {
         x.append(y);
         y = x;

    }
}

Ans 是 AB,B 请告诉我为什么 b 的值不变。

最佳答案

您正在传递变量 x 和 y 的值,而不是对它们的引用。因此,在操作函数中所做的更改是无用的,请点击帖子评论中提供的链接以更好地理解;)

关于java - 字符串缓冲区行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18465684/

相关文章:

java - StringBuffer 类中的 EnsureCapacity(intminimumCapacity) 方法

java - equals() 方法如何在字符串缓冲区中工作?

java - sbt 增量编译在 Java 11 中不起作用

java - 如何在java中使用列名读取csv

java - android Gradle构建失败任务 ':app: processDebugResources'执行失败

Java String-buffer - 如何计算字符串中特定单词的出现次数

android - Android 中 String、StringBuffer 和 StringBuilder 的内存不足异常

java - 获取 Stringbuffer 中换行符开头的索引

java - 在 Google App Engine 上读取静态 XML 文件

Java数组: 2D array dysfunction in terminal ASCII terminal game during attempt to swap elements