|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
之所以把这个问题拿出来重新分析一次,是因为我们操作Java的对象(Object)全是通过对象的引用(Object references),引用可以理解为指针,轻易让人对应到C++的传址上面去。讨论讨论有百益而无一害嘛。 在传基本数据类型 变量时,直接传值不会让人费解;但当传递对象时,就应该理解为传递的是对象引用的值,但这个值并不是对象本身,而是指向该对象,即你让另一个引用指向了该对象。 --Java以By Value的方法传递Object reference。 以下面简朴程序为例: package test; public class BlogTest public static void main(String[] args) 这说明在参数传递过程中发生了以下事情:int 变量 i 被复制了一份给 int x,在modifyAAA()方式中改变了x的值并不会影响主函数中i的值,当然,这是变量生存区间不同,很好理解。但发现list对象的引用传到modifyAAA()方式的前后,主函数中的list也跟着发生了变化。这正说了在传递对象引用时,形参得到了实参对象的引用拷贝,两个引用都指向了同一list对象,所以形参改变了list同时也能反映到实参中来。 返回类别: 教程 上一教程: Java Reflection (JAVA反射) 下一教程: Java网络服务器编程 您可以阅读与"Java的参数传递的唯一方法:传值(By Value)"相关的教程: · java方式参数传值传引用的一点看法 · Java中向方式传参数只有传值一种! · Java 按值传递参数 · javascript向jsp传递参数的一种手段:使用xmlhttp对象 · java中的 by value or by reference |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |