在java中,传递给方法的参数有什么关系吗?例如,我有一些验证方法。假设我有课 Person
在另一个类中保存个人信息和验证电子邮件收件人的方法。在我的 Controller
同学们,我在哪里使用 Person
以及 Validator
上课,我应该通过全部考试吗 person
对象,还是我应该只传递电子邮件中的字符串 person.getEmail()
. 在第一个选项中 Person.validateEmail(Person person)
方法可以调用 person.getEmail()
. 那么,传递的参数有多大有关系吗?我是说在内存/cpu方面。
3条答案
按热度按时间00jrzges1#
java将参数传递为按值调用,而不是按引用调用。所以在对象的情况下,它只传递person类的地址值。
k5ifujac2#
不,这无关紧要,因为您传递的只是对所讨论对象的引用。详见本问答。
一个例外是,如果方法调用是远程的,则必须序列化整个对象图。所需时间取决于字段的数量和数据量。
ux6nzvsh3#
在
java
当你经过整个Person
,您只需传递该对象的地址。所以,这样做并不是处理整个对象,而是处理它的引用。在这种情况下,就性能而言,你将通过什么并不重要:单个电子邮件地址或
person
对象,其中包含该电子邮件。另一方面,这取决于你将来如何使用这种方法。如果这个方法是某种
utility
方法,它用一个抽象的电子邮件做一些事情,所以只传入它将是一个很好的接口解决方案String
电子邮件的参数。