[Java] String字符常量类型作为参数传递的一些问题
无意间在一篇文章中看到String作为参数传递的时候和其他基本数据类型一样是值传递,不免对此产生疑问。
写了几个小Demo后得出结论:
虽然String是一个比较特殊的引用类型,但当其作为参数传递时依然传递的是地址。
不同的是由于String初始赋值后是放在方法区中的常量池内,当通过方法传递变量名的方式更改原String变量的值时,
新的地址值还没来得及影响到原变量地址就已经随着方法运行完毕而弹出栈空间了,所以表面上看起来String作为参数
传递时和基本数据类型一样
测试代码: