应该是1个广为流传的面试题了,如下:
看到之后首先我想到的是,java方法参数的传递只分为值传递和引用传递,基本类型作为形参传递时,方法会拷贝一份副本,因此在java的方法中对形参操作只会改变拷贝的值而不会改变原来的值,所以这个题在method方法中直接改变a和b的值肯定行不通,因此有了下面这种方法:
这个方法结果确实符合要求,但是有投机取巧之意,于是想到了可以重写System.out.println方法,out对象是PrintStream类,因此要重写PrintStream类的println方法,如下: