方法1 :说我在500(五百)个类中有一个常数,如下所示:
public static final String NAME = "CHICAGO";
方法2 :或者我可以将其存储在一个类中,然后将该类导入这500个类中,然后直接Constants.NAME
调用它。
public class Constants {
private Constants() { }
public static final String NAME = "CHICAGO";
}
有人可以回答我这两种方法的内存占用量是多少?方法A是否会占用更多内存?还是方法B会占用相等的内存?
此问题仅与内存占用量有关。
答案 0 :(得分:-1)
使用方法1时,当500个类中的每一个都加载时
(a)您将有500个引用指向CHICAGO
,这是多余的
(b)如果以后发生价值更改,您将需要在任何地方进行更改
方法2会更好,因为您将定义该行
public static final String NAME = "CHICAGO";
而不是500次。
总结:
在这两种情况下,我们在文字池中只有一个CHICAGO
(由于实习),但是使用方法1时,我们将有500个不必要的引用。