如果我把一个重对象作为参数传递给某个函数,代价是什么?



假设我有一个对象教室,在教室中有许多学生对象(50个对象)有超过20个属性,许多教师对象(10个对象)有超过20个属性。教室也有一些其他的属性,如classNo, seatCapacity等。

传递一个class对象的对象作为方法的参数好吗?假设我只需要3-4个教室属性和1-2个学生属性。如果是坏的,传递重对象的成本是多少?

在Java中,您正在传递对对象的引用。当你传递一个String实例或一个复杂的类实例,如ClassRoom类时,没有成本差异。

别管内存了,那是微不足道的。答案是取决于。只要基于业务逻辑传递,而不是考虑内存,是的,JVM处理得更好。

如果你不希望其他方法修改你的对象的字段,那么不要传递这个对象。只需传递所需的属性。如果没有,那么最好传递对象引用并使用它的值,而不是在方法签名中添加那么多参数。

没有区别。对象在堆内存中,而您只是在堆栈内存中使用对对象的引用。

我认为JVM为您管理它,因此您不会感到任何性能问题,而且您不是按值传递整个对象,而是按值传递对象引用(类似于指针的副本)。

最新更新