哈哈哈123457 2017-12-07 16:11 采纳率: 87.2%
浏览 837
已采纳

java 关于值传递 引用传递的问题 大神详细解释一下 谢谢

下图 这个java 关于值传递 引用传递的问题 大神详细解释一下 为什么会是这样 谢谢
图片说明

  • 写回答

7条回答

  • 布衣小哥 2017-12-08 01:38
    关注

    s1,s2:他的值是final的 所以是不可以改变的。在方法中又重新创建了String对象,方法里的s1,s2是局部变量。当方法执行完成之后,方法内的s1 s2也就消失了。
    sb1,sb2:他底层实际是对char数组进行操作的。通过change方法把sb1和sb2的地址传过来,在change方法中sb1=sb2只是把局部变量sb1的地址改变了,当方法执行完成change中的局部变量sb1也就消失了。
    sb2.append(sb1):append返回的是return this,拼接之后的对象还是原对象,虽然change方法执行完成之后局部变量sb2消失了,但是堆内存中的对象数据被改变了。
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?