[英]private vs default scope for variables in java class - any performance issues
对于以上问题,我已经阅读了许多文章。
我可以收集的主要要点:
1.)设为私有意味着我们仅声明的类具有访问权限 。
2.) 此类之外的任何人都不能访问这些变量。
通常会发生这种情况,在创建类时,我们将变量的作用域保留为默认值,这可能仅仅是因为懒惰地写了额外的单词“ private”。 我们仅将字段保留为默认范围。
我想了解开发人员的这种疏忽是如何引起问题的,也许
1.)性能问题
2.)垃圾收集
3.)编译运行时加载
...或任何其他参数。
私有与公共/ etc声明由java解释器和编译器相同地处理。 它们只是我们用来使代码保持模块化的约定,但是在内存空间中的处理却完全相同。
如果开发人员过于懒惰,无法编写private
关键字,则该字段将保持开放状态,以供同一包中其他类中的代码直接修改。
直接从知道如何正确处理该字段的代码外部修改字段是很麻烦的,并且可能导致意外错误。
通常应将字段声明为private
,以防止对该值进行不受控制的操纵。 当然,像这样的规则总是有例外,但是所有开发人员都应该写private
,甚至不去想它,而将其更改为其他规则则需要仔细考虑。
不影响性能。 纯粹是为了防止编码错误。
我认为这对性能没有任何影响。 这将对代码的结构产生一定的影响,如果没有强烈的动机,建议不要使用太多默认变量。
从垃圾回收和类加载的角度来看,它们是根据其需要完成的。 如果JVM认为需要该对象,则它可能会保留在内存中。 尽管默认访问对垃圾回收没有直接影响,但是编程错误很有可能会导致内存泄漏。
它与封装,耦合,为扩展而开放但为修改原理而封闭有关。
例如-如果我正在编写一个库类,并且具有一个具有public\\ default
访问权限的field
。 现在,一旦我发布了库,并且库的客户端开始使用它-我将无法返回并更改此field
,客户端代码可以访问该field
,因为无法确定-未使用或更改它不会破坏客户代码。
因此,只剩下以相同方式支持它的选项。 如果这是私有的,并且我使用了吸气剂和吸气剂-我总是可以在将来的版本中做/添加一些附加功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.