Il termine più generale (agnostico della lingua) è un tipo di dati compositi .
In Java esistono diversi tipi di tipi di dati compositi, la più ovvia è una Classe ma un Enum sarebbe un altro esempio.
Un tipo in scatola è un altro termine correlato, che è una primitiva racchiusa in una classe per fornire un'interfaccia orientata agli oggetti. Esempi di questo in Java sono un int
contro un Integer
o un char
contro un Character
.
In java, int, byte and boolean are primitives, while String is not.
Un String
è in realtà un tipo in scatola. Sotto il cofano è implementato come un array di caratteri come C e potresti anche usare un array di caratteri, se lo desideri. Ovviamente la maggior parte delle persone non lo fa perché non avrai nessuna delle pratiche astrazioni fornite dalla classe String
.
Ecco come La classe java.lang.String è implementata in openjdk:
/** The value is used for character storage. */
private final char value[];
Come puoi vedere, non c'è niente di speciale in una stringa in Java.