Heim > Fragen und Antworten > Hauptteil
öffentliche Klasse T1 {
public static void rename(String aa){
aa="AA";
}
public static void main(String args[ ]){
String aa="BB";
rename(aa);
System.out.println(aa);
}
}
Mein Verständnis:
aa in der Umbenennungsmethode befindet sich im Stapelspeicher und aa in der Hauptmethode befindet sich im Heapspeicher. Durch die Ausführung der Umbenennungsmethode wird der Wert von aa in der Hauptmethode nicht geändert. Stimmt das?
迷茫2017-05-17 10:01:16
按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。
按引用传递(call by reference)时,函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被修改,实参也会被修改。同时两者指向相同的值。
Java核心技术(I)提到,Java都是按值传递,首先对于基本类型,函数并不能修改它的值,对于引用类型,函数也不能修改使得其指向另一个对象。所以都是按值传递。