形参是基本类型与引用类型的区别

1.形参为基本类型

当形式参数为基本类型时,传递过来的是一个值.
方法在调用后,会在栈空间开辟一个空间,创建一个局部变量,然后将接受到的值复制到形式参数的变量上,然后对其进行操作.在方法结束时,创建的局部变量也会消失.同时其原始数据并没有收到影响.

class Demo{
	public static void main (String[] args ){
		int a=3;
		int b=4;
		demo(a,b);
		System.out.println("a="+a+",b="+b); // a=3,b=4
	}
	public static void demo( int a,int b){
		a=a*2;
		b=a+b;
		System.out.println("a="+a+",b="+b);//a=6,b=10
	}
}

运行结果:

D:\web jdk\QFeng>java Demo
a=6,b=10
a=3,b=4

2.形参为引用类型

当形式参数为引用类型时,传递过来的值是一个堆内存的地址.
调用方法后,系统会在栈空间开辟一个空间,创建一个对象,当接收到地址值后,会将刚创建的对象指向地址,然后方法对引用类型的操作实际上操作的是在堆空间存放的原始数据.当方法结束后,方法中创建的对象排队释放,而原始的引用类型依然指向堆空间,所以原始数据发生了变化.

class Demo2{
	public static void main (String[] args ){
		
		int[] arr={1,2,3};
		System.out.println("调用前的数组元素"+arr[0]+","+arr[1]+","+arr[2]);
		demo2(arr);
		System.out.println("调用后的数组元素"+arr[0]+","+arr[1]+","+arr[2]); 
		
	}
	public static void demo2( int[] arr){
		arr[0]+=100;
		arr[1]+=100;
		arr[2]+=100;
		System.out.println("调用中的数组元素"+arr[0]+","+arr[1]+","+arr[2]);
	}	
}

运行结果:

D:\web jdk\QFeng>java Demo2
调用前的数组元素1,2,3
调用中的数组元素101,102,103
调用后的数组元素101,102,103
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值