java - 多个实例与单个静态实例

标签 java oop memory-management coding-style static-members

假设我有这个自定义组件。它是 JMenuItem 的子类,并且所有实例都使用相同的 Font 对象,尽管没有一个实例共享相同的实例。例如,

public abstract class JFooMenuItem extends JMenuItem{
    public JFooMenuItem(final String title){
        super(title);
        setFont(new Font("Courier New", Font.BOLD, 12));
    }
}

现在,考虑到可能有多达 10 个以上的菜单项,将 Font 实例设置为共享的static 成员变量会更有效吗?当前的设置(即上面的代码)很好(内存管理方面)?

最佳答案

我会说使用一个命名实例,不是因为内存,而是因为如果您决定更改字体,则必须在 10+ 个位置进行编辑。

public static Final Font MENU_FONT = new Font("Courier New", Font.BOLD, 12);

编辑:即使您使用子类化,最好将其声明为 public static final 因为 Font 是常量。更清楚了。

关于java - 多个实例与单个静态实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121336/

相关文章:

optimization - 我的Grails应用程序在启动时使用200 MB以上的内存是否正常?

java - 理解托管 beans/backing beans

java - 如何使用C中的crypt库进行DES加密? (设置 key 、加密、加密等)

c++ - 查找对象是否属于C++中的类

java - Java 中的抽象类 - 创建方法

ios - 重用 View Controller 及其 ivars、scrollviews、tableview

performance - DMA Controller 在处理器中的用途是什么?

java - 按字母顺序排列字符串中的字符,然后将按字母顺序排列的字符放入新字符串中?

java - 代号一 : How to stream live video to YouTube Live

php - 记忆 PHP 上的链式方法