黑马程序员技术交流社区
标题:
总结:Java中参数传递问题
[打印本页]
作者:
xunhaifeng
时间:
2015-9-2 20:37
标题:
总结:Java中参数传递问题
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);
change(a,b);
System.out.println("a:"+a+",b:"+b);
int[] arr = {1,2,3,4,5};
change(arr);
System.out.println(arr[1]);
}
public static void change(int a,int b) {
System.out.println("a:"+a+",b:"+b);
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);
}
public static void change(int[] arr) {
for(int x=0; x<arr.length; x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
自己跟着老师画内存图,倒是可以理解。但是离开图就不明白,不能每次都画图吧,有没有什么好点的方法来记述下。而且在论坛看见好几个类似的题,画图作对,不画就会出错。
作者:
寒星在天
时间:
2015-9-2 20:43
自己了解原理就好了啊
作者:
a6658637
时间:
2015-9-2 21:11
首先你知道栈的作用会释放数据,而堆却是会保存的.当你改完数据时只要你不设置null值,那么数据改变就会自动保存在堆.
作者:
王海彬
时间:
2015-9-2 21:12
你去看图,先有个映像,然后看代码,先看main主方法下的方法块,就当你是虚拟机,一步步的运行,保存了变量,然后输出打印,运行发现有方法,将参数传递到方法,运行方法,将该输出打印的打印,该返回的返回值给调用者。。。我是这样理解的,看看有没有效果
作者:
xunhaifeng
时间:
2015-9-3 14:15
嗯,我再看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2