日期:2014-05-20  浏览次数:20717 次

帮我分析一下这段代码的运行结果吧,谢谢
public   class   Test   {
    public   static   void   main(String[]   args)   {
int   a=99;

oper(a);
System.out.print(a);
}
    static   void     oper(int   b){
   
    b=b+100;
   
    }
}


运行   结果为什么是99?

------解决方案--------------------
因为这个是int类型的值赋予,而非对象类型的引用赋予。
如果程序改为:

public class Test {
public static void main(String[] args) {
int a=99;
a=oper(a);
System.out.print(a);
}
static int oper(int b){
b=b+100;
return b;
}
}
则输出是199。

但如果a是对象类型的(例如String类型)则赋予的是一个引用。值会改变了。