Java只有值传递,这个考点在Java基础中的笔试经常出现。下面看两个例子:
//基本数据类型int
@Test
public void t11(){
int num = 10;
num = 20;
foo(num);//num实参
System.out.println(num);//输出20
}
void foo(int value){//value是形参,value = num(假设这个value写成num,值仍不变num = num)
value = 100;
}
//String类型
@Test
public void t22(){
String str = "hello";
str = "java";
fii(str);//str实参
System.out.println(str);//输出java
}
void fii(String text){//text形参 text = str
text = "windows";
}
String栈里是地址,可以自己设定一个,和堆里的相对应
这种值传递的题看起来会很麻烦,很乱,画一下图就能很快解决