在方法的调用过程当中,实参把它的实际值传递给形参,此传递过程就是将实参的值复制一份传递到函数中,这样若是在函数中对该值(形参的值)进行了操做将不会影响实参的值。由于是直接复制,因此这种方式在传递大量数据时,运行效率会特别低下。函数
引用传递弥补了值传递的不足,若是传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将实参的地址复制一份传递到函数中。形参和实参的地址相同,指向同一块内存地址,也就是说操做的其实都是源数据,因此若是在函数中对该值(形参的值)进行了操做将会影响实参的值。(注意:这里所说的是改变源数据的内容,如:改变的对象的属性)spa
public static void main(String[] args) { int str = 1; char[] ch = {'a', 'b'}; change(str, ch); System.out.println(str); //输出:1 System.out.println(ch); //输出:cd } public static void change(int str, char[] ch) { str = 2; ch[0] = 'c'; //改变数据源内容 }
能够利用反射改变实参的值,后面会写反射相关的文章。code
若是内容对你有帮助但愿点赞收藏谢谢!!!对象