Сохраняется ли статический класс вместе со статическими переменными в памяти после его однократного использования, или он создается вместе с каждой переменной каждый раз, когда я его использую?
Чтобы сделать его более реальным, давайте создадим пример.
Допустим, я хочу создать языковой словарь для своей системы, не использующий синглтоны.
Мой статический языковой класс с двумя статическими переменными:
package server;
import java.util.Locale;
import java.util.ResourceBundle;
public abstract class Language {
private static Locale language = new Locale("en", "GB");
public static ResourceBundle dictionary = ResourceBundle.getBundle("dictionary_"+Language.language, Language.language);
public static void changeLanguage(Locale language){
Language.language = language;
Language.dictionary = ResourceBundle.getBundle("dictionary_"+Language.language, Language.language);
}
}
Когда я использую его в системе, чтобы получить такое значение tekst:
System.out.println(Language.dictionary.getString("system.name"));
Будет ли весь класс вместе со статической переменной словаря оставаться в памяти до тех пор, пока я не воспользуюсь им снова, или он будет создан снова и снова будет съедать мою память каждый раз, когда я это делаю?
static final
переменные совпадают. (несвязанный: взгляните на этот проект, он может вам помочь) - person fge   schedule 09.03.2014