java方法参数传递问题
来源:互联网 发布:短域名生成算法 编辑:程序博客网 时间:2024/04/30 01:56
你是否真的清楚java参数是怎么传递的?下面通过一个测试代码,给出一个结论。欢迎指正。
public class C { public static void main(String[] args){ //测试基本类型 int a = 10; changeInt(a,100); System.out.println(a); //测试引用类型 String b = "hello"; changeString(b,"how are you?"); System.out.println(b); //测试数组类型 String[] c = new String[2]; change(c); for (String i : c){ System.out.println(i); } //测试集合类型 List<String> list = new ArrayList<>(); list.add("11"); changeList(list); System.out.println(list.toString()); } public static void change(String[] b){ b[0] = "first"; b[1] = "scened"; } public static void changeString(String a,String b){ a = b; } public static void changeInt(int a,int b){ a = b; } public static void changeList(List<String> aa){ aa.add("22"); }}
运行的结果:
10
hello
first
scened
[11, 22]
可以看到,基本类型和引用类型的参数传递其实都是值传递。其实是传递的一个参数的值的copy副本。
数组类型和集合类型的参数是直接传递的引用,所以在方法中修改的参数能够直接反应在传递的参数本身上。这点大家尤其注意。
java为什么这么设计,我没有想明白,有一点是不是因为解决内存空间和copy效率的考虑?在Thinking in java 中并没有找到相关的内容。知道的同学能告知下,谢谢。
阅读全文
0 0
- java方法参数传递问题
- java方法参数传递问题
- Java方法调用时传递参数问题
- 关于Java方法参数的传递问题
- java方法参数传递
- Java方法参数传递
- Java 方法参数传递
- Java方法参数传递
- Java方法参数传递
- java方法参数传递
- java参数传递问题
- java参数传递问题
- Java参数传递问题
- java参数传递问题
- java参数传递问题
- java参数传递问题
- 方法之间参数传递问题
- Java方法中参数的传递问题总结
- 【jzoj5246】【NOIP2017模拟8.8A组】【Trip】【笛卡尔树】【tarjan-lca】
- BGAQRCode-Android
- Spark SQL 最简单例子
- [SDUT](2138)图结构练习——BFSDFS——判断可达性 ---DFS(图)
- C语言实现sqlite3数据库查询的基本方法
- java方法参数传递问题
- nginx ngx_http_mirror_module模块
- linux Qt5.9.1 测试有名信号灯(sem_open)
- python基础学习--列表
- USACO ORZ(dfs爆搜+判重)
- jmeter jdbc测试(mysql)
- 0x00007FF7C49A4C42 处有未经处理的异常:0xC0000005: 读取位置 0x000001481A2D86C4 时发生访问冲突
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
- 完全背包 初学篇