update SharedPreferences

master
Omooo 5 years ago
parent 9b49696fbb
commit e77d5f5ba0
  1. 2
      blogs/Android/SharedPreferences.md
  2. 4
      blogs/JVM/JVM 是如何实现 invokedynamic 的?.md
  3. 4
      blogs/Java/并发/并发编程的源头.md

@ -84,7 +84,7 @@ private static ArrayMap<String, ArrayMap<File, SharedPreferencesImpl>> sSharedPr
sSharedPrefsCache 是一个 ArrayMap,它存储的是包名和 packagePrefs 的映射关系,而 packagePrefs 存储的是 SharedPreferences 文件与 SharedPreferences 实例对象之间的映射关系。 sSharedPrefsCache 是一个 ArrayMap,它存储的是包名和 packagePrefs 的映射关系,而 packagePrefs 存储的是 SharedPreferences 文件与 SharedPreferences 实例对象之间的映射关系。
这里为什么要把 packageName 作为 key 呢?那是因为一个进程可以有多个应用程序,所以需要用包名来区分它们,在这里感谢 @水晶虾饺 的指正和淳淳教诲。 这里为什么要把 packageName 作为 key 呢?那是因为一个进程可以有多个 Android 应用,所以需要用包名来区分它们,在这里感谢 @水晶虾饺 的指正和淳淳教诲。
这里,可以稍微总结一下,sSharedPrefsCache 会保存加载到内存中的 SharedPreferences 对象,当用户需要获取 SP 对象的时候,首先会在 sSharedPrefsCache 中查找,如果没找到,就创建一个新的 SP 对象添加到 sSharedPrefsCache 中,并且以当前应用的包名为 key。 这里,可以稍微总结一下,sSharedPrefsCache 会保存加载到内存中的 SharedPreferences 对象,当用户需要获取 SP 对象的时候,首先会在 sSharedPrefsCache 中查找,如果没找到,就创建一个新的 SP 对象添加到 sSharedPrefsCache 中,并且以当前应用的包名为 key。

@ -0,0 +1,4 @@
---
JVM 是如何实现 invokedynamic 的?
---

@ -0,0 +1,4 @@
---
并发编程 Bug 的源头
---
Loading…
Cancel
Save