繁体   English   中英

java类中变量的私有范围和默认范围-任何性能问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM