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?

解决方案 »

  1.   

    因为这个是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类型)则赋予的是一个引用。值会改变了。
      

  2.   

    static int oper(int b)因为这个方法没有返回任何值
      

  3.   

    是static void oper(int b)没有返回任何值 刚才粘错了 ^--^