Ich habe eine Frage, warum werden primitive Java-Datentypen nicht einfach "Java-Datentypen" oder ähnliches genannt?
Weil Java mehr Datentypen als nur Grundelemente aufweist. Die primitiven Datentypen sind:
byte
short
int
long
float
double
boolean
char
Ein nicht primitiver Datentyp ist ein Referenzdatentyp, bei dem es sich um Referenzen auf Objekte .
Einige Beispiele sind:
String
Integer
ArrayList
Random
JFrame
Hier ist ein einfaches Beispiel für den Unterschied zwischen den beiden Typen:
%Vor% int i1
ist eine Variable des primitiven Datentyps int
, mit dem primitiven Wert int
von 10.
Integer i2
ist eine Variable mit dem Referenzdatentyp Integer
, die auf ein Objekt Integer
verweist, das den Wert 10
enthält.
Weil es in Java zwei Arten von Typen gibt.
Aus der Java-Sprachspezifikation, KAPITEL 4: Typen, Werte und Variablen :
Die Typen der Java-Programmiersprache sind in zwei Kategorien unterteilt: primitive Typen und Referenztypen. Die primitiven Typen (§ 4.2)boolean
Typ und die numerischen Typen. Die numerischen Typen sind die Integraltypenbyte
,short
,int
,long
undchar
sowie die Gleitkommatypenfloat
unddouble
. Die Referenztypen (§4.3) sind Klassentypen, Schnittstellentypen, und Array-Typen. Es gibt auch einen speziellen Null-Typ. Ein Objekt (§ 4.3.1) ist eine dynamisch erzeugte Instanz ein Klassentyp oder ein dynamisch erstelltes Array. Die Werte eines Referenztyps sind Referenzen auf Objekte. Alle Objekte, einschließlich Arrays, unterstützen die Methoden der KlasseObject
(§ 4.3. 2) . Stringliterale werden durchString
Objekte dargestellt (§4.3.3) .
Weil Referenztypen auch als Datentypen betrachtet werden können. Primitive werden als Werttypen betrachtet. Beide können als Datentyp betrachtet werden.
Um zu verstehen warum, müssen Sie sich andere Programmiersprachen als Java anschauen. Zum Beispiel:
In C ++ gibt es primitive Datentypen ( int
, double
, usw.), konstruierte Datentypen ( struct
, usw.) und Objekt / Referenztypen.
In Ada gibt es primitive Datentypen und andere Datentypen, die von den primitiven Typen abgeleitet sind; z.B. Bereichstypen.
Ich verstehe also, dass Java-Datentypen als "primitive Datentypen" bezeichnet werden, um sie in den Kontext anderer Sprachen zu bringen. Sie sind "Datentypen" in dem Sinne, dass sie keine Objektidentität haben, und sie sind "primitiv" in dem Sinne, dass die spezifischen Typen durch die Java-Sprache definiert sind (und grundlegend für diese sind).
Objekte sind auch Variablen, daher wird der Begriff "primitiv" verwendet, um diese Typen zu unterscheiden.
Nicht primitive Typen werden als Java-Referenztypen bezeichnet und haben einen Namen, der mit Großbuchstaben beginnt. ZB: Integer, Float usw. Für nicht-Primitive können wir die Instanzen erstellen.
Tags und Links java types primitive-types