1、JAVA面试题解惑系列(五)——传了值还是传了引用?JAVA中的传递都是值传递吗?有没有引用传递呢?在回答这两个问题前,让我们首先来看一段代码:Java代码public class ParamTest { // 初始值为0 protected int num = 0; // 为方法参数重新赋值 public void change(int i) { i = 5; } // 为方法参数重新赋值 public void cha
2、nge(ParamTest t) { ParamTest tmp = new ParamTest(); tmp.num = 9; t = tmp; } // 改变方法参数的值 public void add(int i) { i += 10; } // 改变方法参数属性的值 public void add(ParamTest pt) { pt.num += 20
3、; } public static void main(String[] args) { ParamTest t = new ParamTest(); System.out.println("参数--基本类型"); System.out.println("原有的值:" + t.num); // 为基本类型参数重新赋值 t.change(t.num); System.out.print
4、ln("赋值之后:" + t.num); // 为引用型参数重新赋值 t.change(t); System.out.println("运算之后:" + t.num); System.out.println(); t = new ParamTest(); System.out.println("参数--引用类型"); System.out.println("原有的值:" + t.num