在Android API http://developer.android.com/guide/topics/data/data-storage.html#pref
中它说:
共享首选项允许您保存和检索持久键值 成对的原始数据类型。您可以使用SharedPreferences进行保存 任何原始数据:布尔值,浮点数,整数,长整数和字符串。
String是原始数据类型还是Object?
答案 0 :(得分:20)
直接来自JLS:
A string literal is a reference to an instance of class String
所以不是不原语。
答案 1 :(得分:19)
考虑Java
编程语言,
基本类型由语言预定义,并由保留关键字命名。
除了上面列出的八种原始数据类型之外,Java编程语言还通过
java.lang.String
类为字符串提供特殊支持。
- 来自The Java™ Tutorials - Primitive Data Types
因此,在Java
本书中,它不是关键字,也不是原语。 SharedPreferences
可能仍然称它为原语之一,但这不是Java
本书,因为它是一组基本类型之一,如int,float,char等我们来跨越。
答案 2 :(得分:3)
使用Android SharedPreferences时,您将使用getString和putString(使用SharedPreferences.Editor),在这种情况下,两者都是Java String Objects。 Java文档解释说String在技术上不是原始的,但是因为它通常被视为语法上的一个而且它很普遍,它有时可能被称为原语。 Android可能会使用此定义(请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)
答案 3 :(得分:3)
String是一个对象,在android或java中,根本不是原始类型。 您可以使用字符串存储在SharedPreferences中。
答案 4 :(得分:1)
字符串是String类的对象(java.lang.String)。在其他编程语言中,如您所知,String不是通过语言提供的,用户必须使用字符数组来表示String。这就是String不是原始数据类型的原因,而是无数的属性(int length,char [position]等)。
由于String的重要性,Java的创建者允许String简单地由String message = Ḧello World;
制作,没有什么不妥,很多人制作(实例化)String类的对象......但是您也可以说... char[] arr = {'a','b','c'};
String myString = new String(arr);
这与String myString = ¨abc¨;
相同这是因为如前所述,字符串只是一系列字符。在String类中,有一个构造函数(跟在new关键字后面并且匹配类名的东西),它接受一个参数,一个字符数组。
简答:String是类而不是原始数据类型,在创建String对象时,您要实例化String类
答案 5 :(得分:0)
String是一个对象,尽管它可以在SharedPreferences中使用。字符串也存储为键值对