数组引用的困惑,在线等! 在Java中没有指针传递这一说法,传递都是对象的副本,如果引用了副本的方法,则会改变原本的属性,因为副本和原本是指向同一个位置的。所会出这种情况 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题被问过N次了JAVA是值传递,传递数组地址的值;数组地址的值不会变但数组地址的值指向的内容是可以被改变的 chang(x)调用的时候!x指向的地址空间并没有变化,所以没有变化x=chang(x)调用的时候,函数内部的临时变量,指向了y的地址空间,当赋值后,x也指向了y的地址空间,所以变化了! 当代码中"x = change(x);"改为"change(x);"时则结果为:11,12,13,14,1511,12,13,14,15这样是对的,因为此时x的值还是原来的值没有改变,x = change(x)这样就改变了。具体你可以看看http://www.bol-system.com/SUPPORT/optimize.htm public static void change(int x[]){int y[]={21,22,23,24,25};x=y;}这一方法不是将X数组地址的值改变为Y数组地址的值了吗?在下面public static void display(int x[]){for(int i=0;i<x.length;i++)System.out.print(x[i]+" ");System.out.println(" ");}中参数调用的是X数组的引用,那为什么没有调用y数组的元素值? public static void change(int x[]){int y[]={21,22,23,24,25};x=y;}这一方法不是将X数组地址的值改变为Y数组地址的值了吗?这样在下而后的display(x)方法使用时不就是调用了Y的地址了吗? 这是一个很基本的问题,希望你好好学习方法change(x)不能改变全局变量的值,在java中,这里只是传值而不是传引用(指针)x=change(x);这里改变是因为你重新给x值赋值了,比如你修改change(x)为change(){return y;}这里的x,有局部和全局变量之分,你不要混淆好好学习,祝你成功 楼主真晕,java是传值,其他自己去想。 问个简单的问题。 main方法是静态方法,为什么能直接实例化对象?? 如何向JTable中添加组件 散分80分,求助用java判断一个IP地址是否在一个IP段之内,并判断该IP地址是否合法,在线等待。。。。 请求帮忙写二维数组保存到文件的函数和二维数组读取函数 关于调用paint方法 在class的构造函数能否修改自己为令一个实例? 有那位大哥帮一下MM呀!急救!MM在这里跪谢啦! 急用!修改程序使结果排序后输出。经调试成功 后,给分,不成功 ,不给分. 布局问题! NoSuchElementException 异常与值空的问题? SOCKET中readline()问题,急啊!
JAVA是值传递,传递数组地址的值;
数组地址的值不会变
但数组地址的值指向的内容是可以被改变的
x=chang(x)调用的时候,函数内部的临时变量,指向了y的地址空间,当赋值后,x也指向了y的地址空间,所以变化了!
11,12,13,14,15
11,12,13,14,15这样是对的,因为此时x的值还是原来的值没有改变,x = change(x)这样就改变了。具体你可以看看
http://www.bol-system.com/SUPPORT/optimize.htm
int y[]={21,22,23,24,25};
x=y;
}
这一方法不是将X数组地址的值改变为Y数组地址的值了吗?在下面
public static void display(int x[]){
for(int i=0;i<x.length;i++)
System.out.print(x[i]+" ");
System.out.println(" ");
}
中参数调用的是X数组的引用,那为什么没有调用y数组的元素值?
int y[]={21,22,23,24,25};
x=y;
}
这一方法不是将X数组地址的值改变为Y数组地址的值了吗?
这样在下而后的display(x)方法使用时不就是调用了Y的地址了吗?