1、對(duì)于原始數(shù)據(jù)類型,也就是int、 long、char之類的類型,是傳值的,如果你在方法中修改了值,方法調(diào)用結(jié)束后,那個(gè)變量的值沒用改變。
2、對(duì)于對(duì)象類型,也就是Object的子類,如果你在方法中修改了它的成員的值,那個(gè)修改是生效的,方法調(diào)用結(jié)束后,它的成員是新的值,但是如果你把它指向一個(gè)其它的對(duì)象( 70-305 ),方法調(diào)用結(jié)束后,原來對(duì)它的引用并沒用指向新的對(duì)象。
代碼如下:
public class Tester {
public static void main(String[] args) {
int primitive = 2;
changePrimitive(primitive);
//primitive的值依然是2
MyClass myClass = new MyClass();
changeObject(myClass);
//myClass仍然指向的是執(zhí)行changeObject之前的那個(gè)對(duì)象
//但是myClass.i等于3了
}
public static void changePrimitive(int primitive) {
primitive = 3;
}
public static void changeObject(MyClass myClass) {
myClass.i = 3;
myClass = new MyClass();
}
}
class MyClass {
int i;
}
對(duì)于遠(yuǎn)程調(diào)用,350-018 無論是什么類型,調(diào)用結(jié)束后,傳入的參數(shù)和以前沒用任何變化(當(dāng)然前途是直接調(diào)用遠(yuǎn)程方法,如果中間經(jīng)過其它的Proxy類或者Facade類,不能保證那些類對(duì)對(duì)象沒用修改)。至于是通過Local接口進(jìn)行調(diào)用的,也應(yīng)該屬于本地調(diào)用,和上面說的情況應(yīng)該是一致的。