A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @翱翔@ 高级黑马   /  2014-1-4 19:50  /  1405 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

11 个回复

倒序浏览
虽然可以改变对象的属性,但传入到函数时还是一个引用传递,比如:show(int x); 只有当你调用函数时才会传入参数,比如show(5);
回复 使用道具 举报
是引用传递
回复 使用道具 举报
作为引用传递
回复 使用道具 举报
引用传递  传递只是地址
回复 使用道具 举报
java的引用类型数据包括对象、数组和接口,你所问的传递对象当然是引用类型,所以是引用传递
回复 使用道具 举报
本帖最后由 小悠久 于 2014-1-6 09:51 编辑

Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。
Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。
回复 使用道具 举报
  当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有实体的值。在java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的副本。方法如果改变参数的值,不会影响向参数传值的变量的值。
1.基本数据类型参数的传值:
  向该参数传递的值的级别不可以高于该参数的级别。
2.引用类型参数的传值:
  java引用型数据包括对象、数组以及接口。当参数是引用类型时,“传值”传递的是变量的引用而不是变量所引用的实体。,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。因为两个同类型的引用型变量如果具有同样的引用,就会有同样的实体。但是,改变参数的引用不会影响向其传值的变量的引用。
回复 使用道具 举报
这里是引用传递。本质上来说:引用传递和值传递其实传的都是数值。只是引用传递传的是地址值。就像有人给了你房间的地址,你就可操作房间里的东西,而且房间里的东西也会发生改变。而值传递,就只是把数据值给你,你在自己的领域定义了变量来接收和操作,那不会影响到调用者。(把值return回去除外)。一下是内存图请参考
1、引用传递内存图

2.值传递内存图
回复 使用道具 举报
引用传递
回复 使用道具 举报
时地址值的传递
回复 使用道具 举报
引用传递
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马