Java中的参数传递? 当一个对象被当做参数传递到一个方法后,此方法可以改变这个对象的属性并可以返回变化后的结果,这到底是值传递还是引用传递?说得详细点,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 textA a1 = new textA ();textA a2 = a1;引用传递时,对a2操作相当与对a1操作也就是说:a2 与a1 是同一个对象的两个不同的名字而在值传递时,a2会另外分一个与a1不同的空间对任何一个对象操作都不影响到对方. 这是值传递啊,Java和C#不同,Java只有值传递 java虽然只有值传递,但当传递的是一个引用的引用时(就像C++中的指向指针的指针一样),这时就相当于C++中的引用传递了。就是说当传递的引用是指向堆中的一个指向对象的引用时,这时再弄个副本,还是指向那个对象。 楼主说的情况的一个例子就是传递一个对象数组。数组本身在堆中,而且存的都是对象的引用。当参数传过去。堆中出现另一个数组,是这个数组的拷贝。但数组的值是一样的,所以还是指向每一个对象。这样看起来是所谓的引用传递(java中只有值传递)。但传递本身只是传递了数组的引用过去。只是传过去后进行的拷贝不是深拷贝。只拷贝从栈到堆的指向这一级。 紧急求助 java中对String对象的优化,关于一道困扰许多人的题的解答 hibernate QBE查询问题(在线等……) 关于大型项目数据处理 高手请进 谢谢 在Struts中的Action中怎样获取下拉列表的多值 准备用ajax开发聊天室,大家帮忙想想有什么好的建议,兼顾正确性和性能 如何在普通类中调用Action 关于Hibernate中的动态增强 关于jboss安装问题。 struts2标签回显easyui datebox错误 Tomcat里部署网站项目文件,总是有错,各位抽空看看。 struts2文件下载
textA a2 = a1;
引用传递时,对a2操作相当与对a1操作
也就是说:a2 与a1 是同一个对象的两个不同的名字而在值传递时,a2会另外分一个与a1不同的空间
对任何一个对象操作都不影响到对方.
java虽然只有值传递,但当传递的是一个引用的引用时(就像C++中的指向指针的指针一样),这时就相当于C++中的引用传递了。就是说当传递的引用是指向堆中的一个指向对象的引用时,这时再弄个副本,还是指向那个对象。
楼主说的情况的一个例子就是传递一个对象数组。数组本身在堆中,而且存的都是对象的引用。当参数传过去。堆中出现另一个数组,是这个数组的拷贝。但数组的值是一样的,所以还是指向每一个对象。这样看起来是所谓的引用传递(java中只有值传递)。但传递本身只是传递了数组的引用过去。只是传过去后进行的拷贝不是深拷贝。只拷贝从栈到堆的指向这一级。