`public / protected / private`关键字对性能有影响吗?

时间:2016-09-29 12:33:23

标签: java performance access-modifiers

据我所知,public/protected/private关键字对创建时间没有影响。但我想知道保持公共对象/类可访问应该有成本。它有成本吗?

2 个答案:

答案 0 :(得分:6)

不,他们不是。它们本质上是编译时构造。

也就是说,一些OOP语言(例如C ++)可以根据private的内容做出优化决策。但由于反射,在Java中不太可能被利用,因为在Java中,private并不保证对事物不可见课外。

答案 1 :(得分:4)

  

保持公共对象/类可访问应该有成本。

是的,编译器需要检查您访问的内容是否为私有,受保护和公开。然后决定是否允许您访问它。

但是在运行时,运行时不需要检查是否允许您访问该变量。为什么?因为要运行的程序,必须编译它(除非你使用像JS这样的解释语言)。如果你试图访问一个你不允许的变量,它甚至都不会运行!

因此,在运行时,运行时无需担心是否可以访问变量,因此对性能没有影响。