public class Foo {
2.   public static void main (String [] args)  {
3.      StringBuffer a = new StringBuffer (“A“);
4.      StringBuffer b = new StringBuffer (“B“);
5.     operate (a,b);
6.     system.out.printIn{a +“ ”+b};
7. )
8. static void operate (StringBuffer x, StringBuffer y)  {
9.           x.append (y);
10.           y = x;
11.     }
12. }

打印出来是AB B

因为:AB B
变量a\b\x\y中存储的是StringBuffer变量的引用而不是一个StringBuffer对象。根据非基本类型参数传递为引用传递的规则,operate接收的参数只是StringBuffer对象的引用.因此可以理解为x、a都是指向同一个对象;b、y也是指向同一个StringBuffer对象,所以x.append(y)将导致x和a同指的StringBuffer对象改变(增加"B");而y=x只是让变量y改变指向为和x相同的StringBuffer对象,而y原来所指的对象并不会发生任何改变。

所以StringBuffer是引用传递传递的是地址

而String 虽然也是对象,但其实final类型的所以相当于值传递

StringBuffer作为参数传递的问题的更多相关文章

  1. Java API ——StringBuffer类

    1.StringBuffer类概述 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.而StringBuffer就可以解决这个问题 2)线程安全的可变字 ...

  2. Java基础知识强化47:StringBuffer类之StringBuffer的三个面试题

    1. 面试题:String,StringBuffer,StringBuilder的区别 ? 答:String是字符串内容不可变的,而StringBuffer和StringBuilder是字符串内容长度 ...

  3. java学习笔记 --- StringBuffer类

    1.定义:字符串缓冲区,即它是一个容器,容器中可以装很多字符.并且能够对其中的字符进行各种操作. StringBuffer的特点: 1.是一个字符串缓冲区,其实就是一个容器. 2.长度是可变,任意类型 ...

  4. java常用类-StringBuffer,Integer,Character

    * StringBuffer: * 线程安全的可变字符串. * * StringBuffer和String的区别? * 前者长度和内容可变,后者不可变. * 如果使用前者做字符串的拼接,不会浪费太多的 ...

  5. 13-01 java StringBuffer类,StringBuilder类

    StringBuffer类的构造方法 package cn.itcast_01; /* * 线程安全(多线程讲解) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 ...

  6. Java学习之StringBuffer

              1.类介绍 ①线程安全的可变字符串序列,一个类似于String的字符串缓冲区,但是不能修改(就是不能通过加号+连接,String就可以) ②StringBuffer和String类 ...

  7. stringBuffer、StringBuilder、排序、Arrays、Jdk1.5新特性(java基础知识十三)

    1.StringBuffer类的概述 * A:StringBuffer类概述 * 通过JDK提供的API,查看StringBuffer类的说明 * 1.线程安全的可变字符序列. * 2.可将字符串缓冲 ...

  8. AJPFX关于StringBuffer,StringBuilder类总结(二)

    StringBuffer,StringBuilder类 总结2需要注意的知识点:1):// String -- >StringBuffer        String s = "hel ...

  9. Java常用类StringBuffer详解

    内容多为最近学习的自我总结,可能有些地方写的不严谨,甚至会有错误的地方,仅供参考,如发现错误敬请指出,谢谢! 灰色字体为补充扩展内容,多为帮助自己理解. StringBuffer概述: 线程安全的可变 ...

随机推荐

  1. LOJ2527 HAOI2018 染色 容斥、生成函数、多项式求逆

    传送门 调了1h竟然是因为1004535809写成了998244353 "恰好有\(K\)种颜色出现了\(S\)次"的限制似乎并不容易达到,考虑容斥计算. 令\(c_j\)表示强制 ...

  2. 【原创】研发应该懂的binlog知识(上)

    引言 为什么写这篇文章? 大家当年在学MySQL的时候,为了能够迅速就业,一般是学习一下MySQL的基本语法,差不多就出山找工作了.水平稍微好一点的童鞋呢还会懂一点存储过程的编写,又或者是懂一点索引的 ...

  3. 传统前端工程使用 Vue 等框架重构的思路

    这段时间遇到类似的问题,第一反应便是使用 cli 搭建项目,但是细想一下立马否决了,原因如下: 工程量太大,猴年马月能重构完,此期间原项目还是没有任何变动(如果没人跟你一起同步修改之前老项目的话 无法 ...

  4. 解决React通过ajax加载数据更新页面不加判断会报错的问题

    通过AJAX加载数据是一个很普遍的场景.在React组件中如何通过AJAX请求来加载数据呢?首先,AJAX请求的源URL应该通过props传入:其次,最好在componentDidMount函数中加载 ...

  5. Ubuntu Server 18.04 修改网路配置

    新的Ubuntu 服务器采用netplan管理网络配置,跟以前的配置有很大的区别. 实际可行的办法是修改/etc/netplan/01-netcfg.yaml文件: sudo vim /etc/net ...

  6. SNMP 获取交换机端口相关信息

    原文地址:https://blog.csdn.net/ysdaniel/article/details/37927541 我们想用snmpwalk查看网络设备的端口,MIB库中相关定义的信息如下: [ ...

  7. 多线程系列之四:Guarded Suspension 模式

    一,什么是Guarded Suspension模式如果执行现在的处理会造成问题,就让执行处理的线程等待.这种模式通过让线程等待来保证实例的安全性 二,实现一个简单的线程间通信的例子 一个线程(Clie ...

  8. 使用json读写文件中的数据

    把json的数据写入到文件中 import json with open('data.json','w+') as f: json.dump({"name":"张彪&qu ...

  9. OpenStack 与 Rancher

    OpenStack 与 Rancher 融合的新玩法 - Rancher - SegmentFault 思否https://segmentfault.com/a/1190000007965378 Op ...

  10. rem移动端适配方案

    一. rem vs em 单位 定义 特点 rem font size of the root element 以根元素字体大小为基准 em font size of the element 以父元素 ...