黑马程序员技术交流社区

标题: Java中值传递和引用传递的区别、求高手给详解 [打印本页]

作者: 潘天功    时间: 2012-11-23 11:43
标题: Java中值传递和引用传递的区别、求高手给详解


最好是自己理解的、

作者: 谭威    时间: 2012-11-23 12:46
变量之间的传值可以分为值传递和引用传递


Java根据变量的类型不同可以分为简单类型和引用类型,这两种类型的变量主要有一下几点不同:


1 存储机制

简单类型变量是直接存储在栈内存中开辟存储空间变量的值。

引用类型变量是由引用空间和存储空间两个部分构成,引用空间在栈内存中,存储空间在堆内存中。存储空间负责存储变量值,引用空间负责存放存储空间的首地址,引用变量中存放的是地址值,通过地址值可以定义存储位置并修改存储信息

2变量传递

当变量与变量之间传值时,引用类型变量和简单类型变量都属于值传递,不同的是简单类型变量传递的是内容本身,而引用类型变量传递的是引用地址

QQ截图20121122202014.png (5.63 KB, 下载次数: 27)

QQ截图20121122202014.png

作者: jerry2627    时间: 2012-11-23 13:33
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递(形式参数类型是引用数据类型参数):也可以叫做地址传递。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2