单例,静态或接口作为常量字段?

时间:2015-12-22 20:55:35

标签: java memory-management

我需要final个字段作为我的应用配置constants

我知道3种不同的方式,但我不知道哪种方式最好,在这种情况下JVM行为是什么(从内存管理和内存问题的角度来看)

1。使用静态字段

public class Constants {
    public static final String URL = "https://www.google.com";
}
//usage
Constants.URL

2。使用接口

public interface Constants {
    String URL = "https://www.google.com";
}
//usage
Constants.URL

第3。使用单例设计模式(非静态)

public class Constants {
    public final String URL = "https://www.google.com";
}
//usage
public static Constants instance = new Constants();
Constants.instance.URL;

1 个答案:

答案 0 :(得分:2)

它们都没有,使用和枚举类型。请记住,第二个选项确实是不可取的,因为接口的最重要的一点定义一个新类型

顺便说一下,enums是单例(你可以像那样使用它们),默认情况下确实是线程安全的。

例如:

{{1}}

这应该适用于整个应用程序的真正全局消息/常量/等。