我知道当我们使用静态变量时,类的所有实例的值都保持不变。
但是当我在一个类中作为 -> Java Application 运行时,即使是静态变量也会用默认值重新初始化。
即使在类中运行为-> Java 应用程序之后,有什么方法可以保留变量值?
谢谢你。
应用程序退出后将其写入文件,并在应用程序启动时将其读回。首次启动或该文件丢失时使用默认值。
保存到一个文件,并在您需要时从 FILE 再次读取它,我知道这不是一个好的编程标准,如果它与登录凭据有关。
静态变量仅适用于运行时执行,因此即使在程序终止后它们也无济于事并且可以存储变量。
程序结束后,所有数据都将丢失。您必须使用任何数据库或文本文件来保存数据...
您可以将 Class 实例序列化为文件并在执行时重新实例化它。
.properties 是主要用于 Java 相关技术的文件的文件扩展名,用于存储应用程序的可配置参数。
您可以使用属性文件来存储变量并在需要时更新或访问它们
您可以考虑使用Java Preferences API:
java.util.prefs 包为应用程序提供了一种存储和检索用户和系统首选项和配置数据的方法。
来源:https ://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html
其简单用法的示例:
import java.util.prefs.Preferences;
public class PreferenceTest {
private Preferences prefs;
public void setPreference() {
// This will define a node in which the preferences can be stored
prefs = Preferences.userRoot().node(this.getClass().getName());
String ID1 = "Test1";
String ID2 = "Test2";
String ID3 = "Test3";
// First we will get the values
// Define a boolean value
System.out.println(prefs.getBoolean(ID1, true));
// Define a string with default "Hello World
System.out.println(prefs.get(ID2, "Hello World"));
// Define a integer with default 50
System.out.println(prefs.getInt(ID3, 50));
// now set the values
prefs.putBoolean(ID1, false);
prefs.put(ID2, "Hello Europa");
prefs.putInt(ID3, 45);
// Delete the preference settings for the first value
prefs.remove(ID1);
}
public static void main(String[] args) {
PreferenceTest test = new PreferenceTest();
test.setPreference();
}
}
来源:https ://www.vogella.com/tutorials/JavaPreferences/article.html