【java】值传递和引用传递---对象作为方法的参数传入属于哪种传递

首先 这篇作为一个永久性的问题,欢迎大家讨论

其次,个人结论如下几条:

  ①Java有且只有一种传递,即 值传递

  ②作为方法的参数传入,都是对原本的实参进行了copy

  ③只不过【实参】若是【基本数据类型】的话,就是对【实参】的【字面值】进行了copy

  ④如果【实参】是【引用数据类型】的话,就是对【实参】的【数值的引用地址值】进行了copy

最后,解释一下题目的【对象作为方法的参数传入属于哪种传递】,

  1》根据上述第一条,确认是值传递

  2》解释上面第四条,同时解释为什么是值传递    

【java】值传递和引用传递---对象作为方法的参数传入属于哪种传递

对象【类】属于引用数据类型。一个对象有几个东西区分来,如上图。

这样的话,对象传递给方法作为参数传入,实际是将对象中存储的【数值的引用地址】,也就是【对象的值】进行了copy

所以,对象作为方法的参数传入属于值传递。

 

 

 

解释很牵强,但是自我理解原理就是这样的。希望所有看到并有兴趣交流的朋友们留言,交流。