Java执行一个方法的return返回一个自己定义的复杂对象是传值还是引用

DrSmart 2013-06-03 10:51:07
Java 的return(不是参数)返回一个对象(比较复杂,不是基础java自带的基础类型)是传值还是引用

比如

public myObj getInfo()
{
//other

return myObj;
}
...全文
1421 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
无心流泪 2015-09-15
  • 打赏
  • 举报
回复
引用 3 楼 DrSmart 的回复:
[quote=引用 1 楼 fangmingshijie 的回复:] 传值。java里只有值传递
我知道这个,但是就return返回是对象的值,还是对象引用地址的值、[/quote] 如果return的对象是从参数中传递的,那么是引用,如果是方法内部自己创建的,是值
无心流泪 2015-09-15
  • 打赏
  • 举报
回复
public class Test2 {
	/**
	 * 传递引用
	 * @param array
	 * @return
	 */
	public static int[] returnArray(int[] array) {
		return array;
	}
    
	/**
	 * 传递值得拷贝,方法中的数组地址在栈中被释放
	 * @return
	 */
	public static int[] returnArray2() {
		int[] array = new int[]{0,0,0,0,0,0};
		return array;
	}

	public static void main(String[] args) {
		int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
		
		int[] returnarray = returnArray(array);
		
		returnarray[0] = 100;
		
		System.out.println(array[0] + " " + returnarray[0]);
		
		int[] returnArray2 = returnArray2();
		
		System.out.println(returnArray2.length);
	}
}
你所指的情况,肯定是值得拷贝
蝴蝶Poj 2013-06-03
  • 打赏
  • 举报
回复
一般调用方法的传的参数,都是值传递。 think in java里面有提到。 return 的是当前对象的引用地址的值。 http://blog.csdn.net/zhaokewen05643/article/details/8980800
LCore 2013-06-03
  • 打赏
  • 举报
回复
引用 3 楼 DrSmart 的回复:
[quote=引用 1 楼 fangmingshijie 的回复:] 传值。java里只有值传递
我知道这个,但是就return返回是对象的值,还是对象引用地址的值、[/quote] Java中只有传值这一说,没有传引用这概念 return 返回的是对象引用地址的值的一个"副本"
  • 打赏
  • 举报
回复
自己debug,看看到底是什么酒清楚了。
DrSmart 2013-06-03
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
传值。java里只有值传递
我知道这个,但是就return返回是对象的值,还是对象引用地址的值、
冰思雨 2013-06-03
  • 打赏
  • 举报
回复
我一直理解的都是传引用。
  • 打赏
  • 举报
回复
传值。java里只有值传递

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧