java - 关于修饰符的内存问题

标签 java

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

最佳答案

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

但是,认为将一个属性声明为 static 只是为了消耗更少的内存是不对的,您创建一个属性是因为您希望在该类的所有实例之间共享相同的值,这就是通常是糟糕设计的迹象。一个异常(exception)是属性被声明为static final,这意味着它具有常量值并且可以在类级别安全地声明。

关于java - 关于修饰符的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066447/

相关文章:

java - 服务器和客户端之间的通信标准

java - 错误:(7, 22) java: ')' expected when executing my code

java - JVM YoungGen 0%, Perm Gen 99%, OldGen Full

java - 为什么我无法调试 Gradle 构建脚本的每一行?

java - 使用反射设置字段值

java - 将 Spring Boot 部署到 Wildfly 10

java - Java中可以创建循环变量吗?

java - 在 Eclipse 中计算行号

java - 传递 ArrayList 并返回输出值

Java Swing 混合 Pane