Java如何使用首选项API? 这些变量存储在哪里?

说我有以下内容

Preferences prefs = Preferences.userRoot().node(this.getClass().getName()); String ID1 = "Test1"; System.out.println(prefs.getBoolean(ID1, true)); prefs.putBoolean(ID1, false); //prefs.remove(ID1); 
  1. 下次执行程序时,这个变量是否持续存在?
  2. 这些变量存储在哪里?
  3. 利用这个的正确方法是什么?
  4. 这种方法比使用属性文件更好吗?

  1. 是的,该值是持久的,但仅适用于用户。 它不会出现在其他用户身上。
  2. 这是特定于操作系统。 对于Windows,它使用注册表,对于Linux我相信它使用用户root中的隐藏文件,虽然我不是100%肯定。
  3. 你的问题中有一个很好的例子。
  4. 它是不同的 ,而不是更好 。 首选项是一种透明地存储应用程序设置的方法。 这些设置可能会在用户的运行时更新(例如,您可以使用prefs来存储用户特定的设置)。 首选项不应在应用程序之外进行编辑。 属性文件倾向于存储特定于应用程序的硬设置。 这些设置对于每个用户都是相同的,并且不会经常更改。 属性文件是文本文件,在部署时往往伴随应用程序。 您可以使用文本编辑器轻松编辑它们。 应用程序更新属性文件的情况相当罕见。