Java值传递和地址传递:关于String类型和集合类型作为函数参数时传值问题的测试
来源:互联网 发布:nfv 电信网络架构重构 编辑:程序博客网 时间:2024/06/07 20:45
这个问题,可能是太简单了。稍微有点经验的,估计都不会犯这个错误。不好意思,过了个年,几天不写代码,生疏了,也就有了下面的bug。
运行结果:
先看代码,你要是一眼就看出问题了,那就请允许在下水那么一回。
基本数据类型是值传递的,那么基本数据类型的封装类型呢?是不是值传递呢,这个可是对象哟!
直接新建的字符串是值传递的,那么要是new 出来的string在参数传递的时候,是不是值传递的呢?
带着疑惑,看下面的代码。
public class StringTest { public static void main(String[] args) { String transmitValue = "初始值"; String transmitValueNew = new String("new 出来的字符串"); Integer integer = 100; List<String> list = Lists.newArrayList(); list.add("0"); testTransmitValue(transmitValue, transmitValueNew, list, integer); System.out.println(transmitValue); System.out.println(transmitValueNew); System.out.println(list.toString()); System.out.println(integer); //testStringPool(); } /** * 测试字符串和集合在函数之间的传值问题,解决值传递和地址传递的疑惑. */ private static void testTransmitValue(String transmitValue, String transmitValueNew, List<String> list, Integer integer) { transmitValue += "修改的痕迹"; transmitValueNew += "assss修改的痕迹"; list.add("1"); list.add("2"); list.add("3"); integer = 9999; }}
运行结果:
看了代码和运行结果。发现
不管是直接写的字符串,还是new出来的字符串,都是值传递。
封装的基本数据类型,也是值传递。
使用集合,使用习惯了,今天看到个字符串,也习惯性的就把他当参数给传到函数去了,然后就悲剧啦,这个字符串一直是原始值,一直没有修改。
而且,自己也没有意识到这个错误,也是很尴尬呀,怎么能这么水呢!
惭愧啦。
我就留个笔记,避免以后发生这么low的bug。
这字符串是值传递,集合是地址传递。具体就不写那么多了。
0 0
- Java值传递和地址传递:关于String类型和集合类型作为函数参数时传值问题的测试
- java的String类型作为参数传递
- Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?
- java函数的参数传递和String类型
- java函数的参数传递和String类型
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- [Java]String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- Java-String类型的参数传递问题
- 关于 fstream 类型作为参数传递的问题
- HTTPDNS--将Host->IP直接请求服务
- 在Docker Ubuntu镜像中安装tensorflow-gpu
- android Dialog式主题
- 远程访问jupyter notebook
- 最简单服务器程序-TCP
- Java值传递和地址传递:关于String类型和集合类型作为函数参数时传值问题的测试
- MAC端Git安装,命令使用以及环境搭建
- android 启动activityactivity
- 获取一个文件夹下所有文件的名称
- VRTK攻略
- Linux权限管理:ACL权限
- Android Studio设置不区分大小写
- HiveQL:索引
- 关于Kylin的安装问题