关于java语言中方法参数传递问题

    今天忽然想到关于方法参数传递的问题,后通过简单代码的验证,最终肯定是值传递.java

    关于方法参数的传递形式有两种:值传递,引用传递.code

    一.值传递
对象

            所谓值传递就是说实际参数会复制一份而后传递到方法内去使用.当方法内对这个传递的值进行修改时,实际参数不受影响class

    二.引用传递
test

            所谓引用传递就是说不会复制一份实参值,因此当方法内部对这个传递的值进行修改是,实际参数会受到影响.引用

    三.关于java中方法参数的传递方式方法

            在java中能够这样理解方法参数的传递,首先对于java的基本类型来讲,就是复制一份而后让方法内部操做.对形参的操做不会影响实参.这显然是值传递.其次对于java中对象来讲,是复制这个对象的地址,造成一个新的形参,此时对对象值的改变,确定能够影响实参,由于他们都指向同一个地址的对象.但并非值传递的意义.当咱们让形参指向一个新的地址,及改变传递参数的值(这里是方法实际参数地址复制的值),原来实际参数指向的地址并无改变.因此明显能够认为java中方法参数的传递只有值传递.
static

    四.证实代码co

public class MyTest {
	public static void main(String[] args) {
		Cat cat = new Cat("咪咪");
		
		MyTest test = new MyTest();
		int a = 100;
		test.printCatName(cat,a);
		System.out.println(cat);
		System.out.println(a);
	}
	
	public void printCatName(Cat cat,int a){
		cat = null;
		System.out.println(cat);
		a = 10;
	}
}

输出结果   参数传递

I am a cat named 咪咪
null
com.lubby.test.Cat@43cda81e
100
相关文章
相关标签/搜索