据我所知,public/protected/private
关键字对创建时间没有影响。但我想知道保持公共对象/类可访问应该有成本。它有成本吗?
答案 0 :(得分:6)
不,他们不是。它们本质上是编译时构造。
也就是说,一些OOP语言(例如C ++)可以根据private
的内容做出优化决策。但由于反射,在Java中不太可能被利用,因为在Java中,private
并不保证对事物不可见课外。
答案 1 :(得分:4)
保持公共对象/类可访问应该有成本。
是的,编译器需要检查您访问的内容是否为私有,受保护和公开。然后决定是否允许您访问它。
但是在运行时,运行时不需要检查是否允许您访问该变量。为什么?因为要运行的程序,必须编译它(除非你使用像JS这样的解释语言)。如果你试图访问一个你不允许的变量,它甚至都不会运行!
因此,在运行时,运行时无需担心是否可以访问变量,因此对性能没有影响。