java--方法参数的值传递机制
程序员文章站
2023-12-26 10:38:27
...
java的值传递机制
java中方法的参数传递的方式只有一种:值传递,即将实际参数值的副本传入方法中,而参数本身不受影响
形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参
形参是引用数据类型,将实参引用数据类型变量的“地址值”传递给形参
交换两个数的值
/*
java的值传递机制,交换两个数的值
*/
public class ValueTransferTest {
public static void main(String[] args) {
int m=10;
int n=20;
ValueTransferTest transferTest=new ValueTransferTest();
transferTest.swap(m,n);
System.out.println("m = "+m+", n= "+n);
}
public void swap(int m,int n){
int temp=m;
m=n;
n=temp;
}
}
这里使用基本数据类型,传递的是m和n的值的copy,而不是m和n本身,所以当方法执行完之后,方法的形参被销毁,而main方法里的m和n还是不变
交换两个数的值–传入引用
/**
* 交换两个数的值,引用传递
*/
public class ValueTransferTest2 {
public static void main(String[] args) {
int[] data=new int[]{10,20};
ValueTransferTest2 valueTransferTest2=new ValueTransferTest2();
valueTransferTest2.swap(data);
System.out.println("m = "+data[0]+",n = "+data[1]);
}
public void swap(int[] data){
int temp=data[0];
data[0]=data[1];
data[1]=temp;
}
}
引用类型,传入的是对象的地址,那么形参和实参同时指向同一个对象。
推荐阅读
-
java--方法参数的值传递机制
-
方法的参数传递机制
-
方法参数的传递机制
-
方法参数的值传递机制(全局与局部区别)
-
ASP同一站点下gb2312和utf-8页面传递参数乱码的终极解决方法
-
Java的参数传递是「按值传递」还是「按引用传递」?
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
输入值/表单提交参数过滤有效防止sql注入的方法_PHP
-
C# 运用params修饰符来实现变长参数传递的方法
-
c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析