关于是值传递还是引用传递的问题
2017-09-06 17:50
537 查看
刚才群里有人问这个问题,其实这是一个基础问题。弄清楚内存你就懂了。先看代码:
打印结果:
内存模型(比较粗糙,简略看下):
总结:调用传参方法时,对方法里面的参数操作一致视为“=”, 即赋值的作用。
例如:
4000
public class TransTest { static class Me { int i; } public static void changeBasicType(int i) { i = 100; } public static void changeRefType(Me m) { m.i = 100; } public static void changeString(String str) { str = "java"; } @Test public void doTest() { int a = 20; changeBasicType(a); System.out.println(a); /***************************/ Me mm = new Me(); mm.i = 20; changeRefType(mm); System.out.println(mm.i); /********************************/ String xx = "hello"; changeString(xx); System.out.println(xx); } }
打印结果:
20 100 hello
内存模型(比较粗糙,简略看下):
总结:调用传参方法时,对方法里面的参数操作一致视为“=”, 即赋值的作用。
例如:
//调用这句时,相当于m = mm; m指向mm的对象。 changeRefType(mm); public static void changeRefType(Me m) { //调用这句时,改变了这个对象i的值。 m.i = 100; }
4000
相关文章推荐
- [LeetCode] Path Sum II, 关于效率的两个问题: vector还是queue? 传递引用还是拷贝?
- 关于String是值传递还是引用传递?
- 关于js中一个对象当做参数传递是按值传递还是按引用传递的个人看法
- 关于js中一个对象当做参数传递是按值传递还是按引用传递的个人看法
- 讨论java是值传递还是引用传递,到String 常量池的问题学习。
- 关于Java对象作为参数传递是传值还是传引用的问题
- 关于java中是引用传递还是值传递的问题!!!经常在笔试中遇到,今天终于弄明白了!
- JavaScript中的值是按值传递还是按引用传递问题探讨
- 【Stackoverflow好问题】Java是按值传递还是按引用传递
- JavaScript中的值是按值传递还是按引用传递问题探讨
- 探讨Java中函数是值传递还是引用传递问题
- 按值传递还是按引用传递
- java是值传递还是引用传递?
- Java中函数参数的传递是值传递还是引用传递
- js函数传参是按值传递还是按引用传递?
- JavaScript 函数参数传递到底是值传递还是引用传递
- 【转】java到底是按值传递还是按引用传递?
- js传参是按值传递还是按引用传递?
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- java到底是值传递还是引用传递