Ответ
Нет, String не является примитивным типом. Это ссылочный тип (reference type), полноценный объект класса java.lang.String.
| Ключевые отличия от примитивов (int, char, boolean и др.): | Признак | Примитивные типы | String (ссылочный тип) |
|---|---|---|---|
| Хранение | Значение в стеке (для локальных переменных) | Ссылка в стеке, объект в куче | |
| Значение по умолчанию | 0, false и т.д. |
null |
|
| Наличие методов | Нет | Да (length(), substring(), equals()) |
|
| Сравнение | Оператор == |
Метод .equals() для сравнения содержимого |
|
Возможность быть null |
Нет | Да |
Пример, иллюстрирующий разницу:
int primitiveInt = 100; // Примитив, хранит значение 100
String referenceString = "Hi"; // Ссылка, указывает на объект String "Hi"
String nullString = null; // Ссылка может не указывать на объект
// primitiveInt = null; // ОШИБКА КОМПИЛЯЦИИ: примитив не может быть null