Является ли String примитивом или объектом в Android или Java?
В Android API http://developer.android.com/guide/topics/data/data-storage.html
Это говорит:
Shared Preference позволяет вам сохранять и извлекать постоянные пары ключ-значение примитивных типов данных. Вы можете использовать SharedPreferences для сохранения любых примитивных данных: логических значений, чисел с плавающей запятой, целых, длинных и строковых значений.
Является ли String примитивным типом данных или объектом?
6 ответов
Так далеко как 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 String. Документация Java объясняет, что String технически не является примитивом, но поскольку его часто синтаксически рассматривают как единицу, и его распространенность иногда можно назвать примитивом. Android, вероятно, использует это определение (см. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html).
String - это объект, в Android или Java это вообще не примитивный тип. Вы можете использовать строки для хранения в SharedPreferences.
Строки являются объектами класса String (java.lang.String). В других языках программирования String, как вы знаете, не был предоставлен через язык, пользователь должен был использовать массив символов для представления String. Вот почему String не является примитивным типом данных, а представляет собой множество атрибутов (int length, char[position] и т. Д.).
Из-за важности строки, создатели Java позволили просто сделать строку String message = Ḧello World;
Ничего плохого в этом нет, многие люди делают объекты класса String именно таким образом... Однако вы также можете сказать...char[] arr = {'a','b','c'};
String myString = new String(arr);
Это так же, как String myString = ¨abc¨;
Это потому, что, как уже упоминалось, строка - это просто последовательность символов. Внутри класса String имеется конструктор (то, что следует за новым ключевым словом и соответствует имени класса), который принимает в качестве параметра массив символов.
Краткий ответ: String - это класс, а не примитивный тип данных. Создавая объект String, вы создаете экземпляр класса String.
String - это объект, хотя его можно использовать в SharedPreferences. Строка также сохраняется как пара ключ-значение