【问题标题】:Memory thing about modifiers关于修饰符的记忆
【发布时间】:2014-09-26 18:54:05
【问题描述】:

我在想Java中的这些修饰符之间有什么区别。例如:我有一个 int 值。: 公共诠释; 私人诠释; 公共静态整数; 私有静态整数; 公共最终 int = ?; 私有静态最终 int = ?; 因为我在 Minecraft 中看到资源位置是私有的静态最终位置。它们之间的内存消耗有什么区别吗?

【问题讨论】:

  • 你应该多关心好的设计、好的抽象、数据结构和算法,而不是内存消耗……现在内存既便宜又丰富。
  • 什么是“大量内存”?在 Java 中,只有当程序达到 2-4 GB(假设是服务器端程序)时,您才应该开始担心。任何事情都不值得花时间,不要担心减少内存消耗只是。还有很多更重要的事情需要处理,微优化代码以减少内存占用是浪费时间除非分析器证明这会导致性能问题。

标签: java


【解决方案1】:

所有声明为static 的属性都属于一个类,而不是非静态的instance 属性,这些属性是为每个实例化的对象分配的。所以是的,static 属性最终会消耗“更少的内存”,因为它们只为每个类的所有实例创建一次。

但是认为你声明一个属性为static 只是为了消耗更少的内存是不对的,你创建一个属性是因为你想在类的所有实例之间共享相同的值,这往往不是糟糕设计的标志。一个例外是当一个属性被声明为static final,这意味着它具有一个常量值并且可以在类级别安全地声明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2017-11-18
    • 2015-04-03
    • 2018-12-10
    相关资源
    最近更新 更多