Является ли 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. Строка также сохраняется как пара ключ-значение

Другие вопросы по тегам