Java中Public和Private的运行时性能

时间:2012-04-09 07:38:38

标签: java performance runtime

公共变量/私有变量/方法之间是否存在运行时性能差异?

我知道如果可能的话,保持私密性是个好习惯,但是有任何与优化相关的原因。

3 个答案:

答案 0 :(得分:1)

像大多数问题一样,我会说;写清楚,简单的代码,它也会表现良好。

如果有人告诉你出于性能原因这是一个好主意,请确保使用实数进行备份,对于您使用的Java版本仍然如此(大部分建议都已过时),它适用于您的申请。

通常“性能原因”,是编写模糊代码的借口,实际上它可能不会更快或甚至可能更慢(因为它会混淆JVM优化器,就像它会让你感到困惑)

有些人对性能优化持怀疑态度,你会引用“过早优化是所有邪恶的根源”这是夸大其词,但这是一个很好的警告,不要担心性能问题,除非你真的知道你需要为了提高性能,你的改变确实有所作为。

对于此特定问题,您无法从其他类调用私有方法。所以基本上,你不能从另一个外部类和同一个外部类中的另一个类创建访问器,如果调用的话,通常会内联。

答案 1 :(得分:0)

我认为没有直接的。无论如何,访问修饰符在我的视图中更像是一个编译时的东西。

即使有,也不要那样,有一个很好的理由(可能有几个)你不应该公开课堂领域。

令人难以置信的小的性能影响因为您必须为字段调用getter和setter方法,但除非您在那里执行复杂的操作,否则它肯定不会是显而易见的。这最多只需几毫秒。

答案 2 :(得分:0)

私有变量/公共变量/方法之间的运行时性能没有区别。它只取决于您的程序要求。例如,你有一个整个程序所需的方法,那么你应该使用公共方法。它减少了代码重复。但是你有一个方法只需要一个类,那么你应该使用私有方法。