首页 > 其他 > 详细

String 类型的局部变量作为参数进行传递

时间:2019-10-11 01:05:01      阅读:146      评论:0      收藏:0      [点我收藏+]

public class Main{

public static void fun(String a){

          3.a+="BinJianBishiMianShi";

}

public static void main(String[] ags){

  1.   String a="Hello";
  2.    fun(a);

 System.out.println(a);

}

}

结果为 Hello

笔试的懵懂的局部变量  引用传递 蒙对了答案 结果面试官细问到底如何实现 支支吾吾不知所以

分析

首先 String 类是不可变的 拼接和截取都会产生新的对象

String a="Hello";

a:放在栈中

Hello放在方法区的运行时常量池中

技术分享图片

由上图所示

在1处 栈中a指向 Hello

在2处 a传入函数的时候仍然指向Hello,此a为a_copy

在3处进行拼接的时候  在运行时常亮池中产生新的HelloBinJianBishiMianShi

a_copy如红色箭头执行新的字符串

 

但是在主函数中打印的仍然是原来的a,所以仍然是Hello

 

你懂了吗,反正我懂了

String 类型的局部变量作为参数进行传递

原文:https://www.cnblogs.com/bowenqianngzhibushiwo/p/11651234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!