首先 这篇作为一个永久性的问题,欢迎大家讨论
其次,个人结论如下几条:
①Java有且只有一种传递,即 值传递
②作为方法的参数传入,都是对原本的实参进行了copy
③只不过【实参】若是【基本数据类型】的话,就是对【实参】的【字面值】进行了copy
④如果【实参】是【引用数据类型】的话,就是对【实参】的【数值的引用地址值】进行了copy
最后,解释一下题目的【对象作为方法的参数传入属于哪种传递】,
1》根据上述第一条,确认是值传递
2》解释上面第四条,同时解释为什么是值传递
对象【类】属于引用数据类型。一个对象有几个东西区分来,如上图。
这样的话,对象传递给方法作为参数传入,实际是将对象中存储的【数值的引用地址】,也就是【对象的值】进行了copy
所以,对象作为方法的参数传入属于值传递。
解释很牵强,但是自我理解原理就是这样的。希望所有看到并有兴趣交流的朋友们留言,交流。