黑马程序员技术交流社区
标题:
基本数据类型和引用数据类型的传递问题
[打印本页]
作者:
yekanghui
时间:
2015-3-16 00:42
标题:
基本数据类型和引用数据类型的传递问题
基本数据类型和引用数据类型的传递值有什么区别?
作者:
执梦而行
时间:
2015-3-16 11:40
对于基本数据类型,传递的是实参的值,形参的改变不会影响实参
对于引用数据类型,参数值是数组的引用,给方法传递的是这个引用,形参的改变会直接影响实参
例如下面的代码就反应这种特征
class Test {
public static void main(String[] args) {
int x=1;
int[] y=new int[10];
m(x,y);
System.out.println("x is "+x);
System.out.println("y[0] is "+y[0]);
}
public static void m(int number,int[] numbers) {
number=1001;
numbers[0]=5555;
}
}
复制代码
作者:
吐槽ing
时间:
2015-3-16 16:55
基本数据类型按值传递 相当于复制了一份过去 引用数据按地址传递 两个地方根据地址使用同一份数据 如被更改,则原有数据也会更改 例如数组在传递数组时 如果接收到数组之后 对其修改那么原来的数组也会同时修改 因为它们指向同一个地址
作者:
一步一个脚印
时间:
2015-3-16 20:16
一个是传实际的值,一个是传指针。传值情况下不会改变原来的内存,因为只是一份拷贝,至于传指针,其实也是传值,也是指针的拷贝,值不过,传指针比如数组名,可以用*改变指向的数组的值,所以看起来不太一样。其实都只是传值
作者:
齐小灰同学
时间:
2015-3-16 21:01
我 是来学习的。我去看看他们是不是都在常量池里。
作者:
mark.tian
时间:
2015-3-16 21:08
其实你把代码在内存中运行的顺序搞清楚,遇到类似的问题一分析便得出结论了。。。
作者:
yekanghui
时间:
2015-3-23 00:57
清楚了,谢谢各位技术大牛
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2