在 Android API http://developer.android.com/guide/topics/data/data-storage.html#pref
它说:
Shared Preference 允许您保存和检索原始数据类型的持久键值对。您可以使用 SharedPreferences 保存任何原始数据:布尔值、浮点数、整数、长整数和字符串。
String 是原始数据类型还是对象?
在 Android API http://developer.android.com/guide/topics/data/data-storage.html#pref
它说:
Shared Preference 允许您保存和检索原始数据类型的持久键值对。您可以使用 SharedPreferences 保存任何原始数据:布尔值、浮点数、整数、长整数和字符串。
String 是原始数据类型还是对象?
就Java
编程语言而言,
原始类型由语言预定义并由保留关键字命名。
除了上面列出的八种原始数据类型之外,Java 编程语言还通过
java.lang.String
该类提供了对字符串的特殊支持。
—— 来自Java™ 教程 - 原始数据类型
因此,就像在Java
书中一样,它不是关键字,也不是原语。SharedPreferences
可能仍将其称为原语之一,但这不是书上Java
所说的,可能是因为它是我们遇到的 int、float、char 等一组基本类型之一。
直接来自 JLS:
A string literal is a reference to an instance of class String
所以不,它不是原始的。
使用 Android SharedPreferences 时,您将使用 getString 和 putString(带有 SharedPreferences.Editor),在这种情况下,它们都是 Java 字符串对象。Java 文档解释说,从技术上讲,String 不是原语,但因为它通常在语法上被视为一种原语并且它很普遍,所以有时可以将其称为原语。Android 可能使用这个定义(参见http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)
String 是一个对象,在 android 或 java 中它根本不是原始类型。您可以使用字符串存储在 SharedPreferences 中。
字符串是 String 类 (java.lang.String) 的对象。如您所知,在其他编程语言中,字符串不是通过语言提供的,用户必须使用字符数组来表示字符串。这就是为什么 String 不是原始数据类型,而是无数属性(int length、char[position] 等)的原因。
由于 String 的重要性,Java 的创建者允许通过简单地制作 StringString message = Ḧello World;
没有错,许多人以这种方式制作(实例化)String 类的对象......但是你也可以说char[] arr = {'a','b','c'};
String myString = new String(arr);
......同String myString = ¨abc¨;
这是因为如前所述,字符串只是一系列字符。在 String 类内部,有一个构造函数(跟在 new 关键字后面并与类名匹配的东西),它接受一个字符数组作为参数。
简短的回答:String 是一个类而不是原始数据类型,当创建一个 String 对象时,您正在实例化 String 类
String 是一个对象,尽管它可以在 SharedPreferences 中使用。字符串也存储为键值对