不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java的方法参数传递方式
基本数据类型:值存放在局部变量表中,无论如何修改只会修改当前栈帧的值,方法执行结束对方法外不会做任何改变。
引用数据类型:指针存放在局部变量表中,调用方法的时候,副本引用压栈,赋值仅改变副本的引用。但是如果通过操作副本引用的值,修改了引用地址的对象,那么这时候地址对象会被修改。
(参数类型是int,long等基本数据类型(八大基本数据类型),参数传递的过程采用值拷贝的方式)
public class Test {
public static void main(String[] args) {
int a = 5;
fun(a);
System.out.println(a);
}
private static void fun(int a) {
a += 1;
}
}
程序输出:
5
public class Test {
public static void main(String[] args) {
int arr[] = {1,2,3};
fun(arr);
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
private static void fun(int a[]) {
a[1] = 0;
}
}
程序输出:
1 0 3
注意看一下字符串类型:
public class Test {
public static void main(String[] args) {
String string = "111";
func(string);
System.out.print(string);
}
private static void func(String str) {
str = str + "123";
System.out.println(str);
}
}
程序输出:
111123 111
再看一下包装类型:
public class Test {
public static void main(String[] args) {
Integer a = 5;
fun(a);
System.out.println(a);
}
private static void fun(Integer a) {
a += 1;
}
}
程序输出:
5
原文:https://www.cnblogs.com/smilexuezi/p/11900243.html