论Java 参数传递

原创 2013年12月02日 18:53:57
public class Test {
	public void modify(Dog dog ,int l) {
		//函数内修改了传入的参数
		dog.setLeg(l);
		l = 10;
		System.out.println("During:dog'leg"+dog.getLeg()+"  l:"+l);
	}
	public static void main(String[] args) {
		Dog d = new Dog(4);
		int l = 2;
		System.out.println("Before:dog'leg"+d.getLeg()+"  l:"+l);
		new Test().modify(d, l);
		System.out.println("After:" + d.getLeg()+"  l:"+l);//After:2
//              运行结果
//		Before:dog'leg4  l:2
//		During:dog'leg2  l:10
//		After:2  l:2
	}
}


不纠结于传值还是传引用(实际是值传递)

java在函数调用时,参数传递时先将参数拷贝一份然后传给函数,基本类型和引用类型的区别在于,引用类型保存的是某一对象在堆空间的地址,而基本数据类型保存的是内存本身,传入引用类型Dog d(一块地址XXXXXXXX)后,虽说传入是d的copy(同样是XXXXXXXX),但这块copy和我原来的对象指向的是同一块堆空间啊,函数通过这个copy找到我在堆空间的东西后一通乱改,改完后我d指向的位置(XXXXXXXX)虽然没变,但是位置里面的东西改变了阿.

基本数据类型传入的也是copy但是,在java中基本数据类型保存的内存本身,copy也是一块内存,这块内存中保存的是具体的数据,而不是引用类型的一块地址.这块copy传入后会被修改,但是修改后却与我原来的数据无关.所以基本类型传入后数据不会变.

版权声明:本文为博主原创文章,转载请注明出处。

java参数传递

  • 2014年07月07日 17:31
  • 390KB
  • 下载

java语言中的参数传递

  • 2012年12月19日 16:37
  • 39KB
  • 下载

Java基础——方法的参数传递机制

在之前用C++的时候,参数传递有三种:传值,传地址值,传引用。Java中参数传递机制只有一种:值传递。值传递就是将实际参数值得副本传入方法内,而参数本身不会受到任何影响。 基本数据类型参数传递  ...

java 参数传递

  • 2012年05月10日 18:15
  • 60KB
  • 下载

java参数传递

  • 2017年11月21日 20:44
  • 615KB
  • 下载

关于C、java、php的函数参数传递特点的分析

 一直以来都没有时间写写自己对C中指针的理解,这篇文章虽然和指针关系不大,但却对于一些想要对指针有一些深入理解的人来说确实必须一看的。 想当初,本人特别反感的就是什么“值传递”和“引用传递”的...

java参数传递

  • 2011年11月29日 10:09
  • 10KB
  • 下载

Java中方法的参数传递机制

两段代码public class Demo11 { void fun1(int i, int j) { i = i + 5; j = j + 5; ...

java中参数传递的演示

  • 2014年10月18日 10:08
  • 442KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:论Java 参数传递
举报原因:
原因补充:

(最多只允许输入30个字)