1

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

我知道如果可能的话,将事情保密被认为是一种很好的做法,但是是否有任何与优化相关的原因。

4

3 回答 3

0

我不认为有直接的。无论如何,在我看来,访问修饰符更像是编译时的事情。

即使有,也不要那样做,有一个很好的理由(可能有几个)你不应该公开类字段。

对性能的影响非常小,因为您必须为字段调用 getter 和 setter 方法,但除非您在那里进行复杂的操作,否则绝对不会引起注意。最多是几毫秒的问题。

于 2012-04-09T07:45:20.840 回答
0

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

如果有人告诉您出于性能原因某事是一个好主意,请确保这是用实数备份的,您正在使用的 Java 版本仍然是这种情况(此建议中的大部分内容已过时),并且它是适合您的应用。

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

有些人对性能优化持怀疑态度,以至于您引用“过早的优化是万恶之源”这句话有点夸张,但这是一个很好的警告,除非您真的知道需要提高性能,否则不要担心性能问题,并且您的更改确实有所作为。

对于这个特定问题,您不能从另一个类调用私有方法。所以基本上,你不能来自另一个外部类,也不能来自同一个外部类中的另一个类,并且如果调用足够多,通常会内联访问器。

于 2012-04-09T07:50:37.063 回答
0

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

于 2012-04-09T08:02:05.537 回答