Ho una domanda, perché i tipi di dati primitivi Java sono appena chiamati "tipi di dati Java" o qualcosa di simile?Perché i tipi di dati primitivi Java non si chiamano tipi di dati java?
risposta
Per distinguere tra loro e Objects.
Per distinguerli dai tipi di dati dell'oggetto.
Perché Java ha più tipi di dati che solo primitives. I tipi di dati primitivi sono:
byte
short
int
long
float
double
boolean
char
Un tipo di dati che è un non-primitivo è un tipo di dati di riferimento, che sono riferimenti a objects.
Alcuni esempi sono:
String
Integer
ArrayList
Random
JFrame
Ecco un semplice esempio di th e differenza tra i due tipi:
int i1 = 10;
Integer i2 = Integer.valueOf(10);
int i1
è una variabile del tipo di dati primitivo int
, con il int
valore di base 10.
Integer i2
è una variabile con un tipo di dati di riferimento di Integer
, referenziare un oggetto Integer
che contiene il valore 10
.
Perché reference types può anche essere considerato tipi di dati. I primitivi sono considerati tipi di valore. Entrambi possono essere considerati un tipo di dati.
Perché in Java esistono due categorie di tipi.
Dal Java Language Specification, CHAPTER 4: Types, Values, and Variables:
I tipi di linguaggio di programmazione Java sono divisi in due categorie: i tipi primitivi e tipi di riferimento. I tipi primitivi (§4.2) sono il tipoboolean
ei tipi numerici.I tipi numerici sono i tipi interibyte
,short
,int
,long
echar
e i tipi a virgola mobilefloat
edouble
. I tipi di riferimento (§4.3) sono tipi di classe, tipi di interfaccia e tipi di array. C'è anche un tipo speciale Null. Un oggetto (§4.3.1) è un'istanza creata in modo dinamico di un tipo di classe o di un array creato dinamicamente. I valori di un tipo di riferimento sono riferimenti a oggetti. Tutti gli oggetti, inclusi gli array, supportano i metodi della classeObject
(§4.3.2). I valori letterali delle stringhe sono rappresentati dagli oggettiString
(§4.3.3).
tipi primitivi non sono chiamati tipi di riferimento java e hanno il nome che inizia con la lettera maiuscola. Es .: Integer, Float ecc. Per i non primitivi possiamo creare le istanze.
Per capire perché, penso che sia necessario guardare linguaggi di programmazione diversi da Java. Ad esempio:
In C++ esistono, tipi primitivi dati (
int
,double
, ecc), i tipi di dati costruito (struct
, ecc) e tipi oggetto/riferimento.In Ada sono presenti tipi di dati primitivi e altri tipi di dati derivati dai tipi primitivi; per esempio. tipi di gamma.
Quindi, la mia comprensione è che i tipi di dati Java sono descritti come "tipi di dati primitivi" per inserirli nel contesto di altre lingue. Sono "tipi di dati" nel senso che non hanno identità di oggetto e sono "primitivi" nel senso che i tipi specifici sono definiti da (e fondamentale per) il linguaggio Java.
Anche gli oggetti sono variabili, quindi il termine "primitivo" viene utilizzato per distinguere questi tipi.
- 1. I tipi di dati primitivi thread-safe in Java
- 2. PostgreSQL per Java Tipi di dati (Grails)
- 3. Strano comportamento java con i cast per i tipi primitivi
- 4. Tipi di dati SQLite
- 5. Java JLS specifica la promozione di tipi di wrapper primitivi?
- 6. java: Arrays.asList Understanding (T ... array) Metodo per i tipi primitivi
- 7. Ottenere valore predefinito per Java i tipi primitivi
- 8. Perché i tipi primitivi in C# hanno le proprie operazioni?
- 9. Java Reflection chiamando costruttore con i tipi primitivi
- 10. tipi di dati gerarchici
- 11. La mancanza di tipi primitivi non firmati di Java è una caratteristica di Java la piattaforma o Java del linguaggio?
- 12. Perché i tipi di dati primitivi funzionano senza includere lo spazio dei nomi di sistema?
- 13. regole di fusione per tipi primitivi in Java
- 14. costo per la fusione di tipi primitivi in Java
- 15. Le enumerazioni Java sono considerate tipi primitivi o di riferimento?
- 16. Java getConstructor (tipi) con i tipi parametrizzabile
- 17. isAssignableFrom con tipi di riferimento e primitivi
- 18. Programmazione Tipi di dati
- 19. tipo di tipi in Java
- 20. L'ambiente run-time java è libero di utilizzare qualsiasi dimensione desideri per i tipi di dati primitivi?
- 21. BigQuery tipi di dati
- 22. Restituisce diversi tipi di dati da un metodo in java?
- 23. Perché non è possibile utilizzare tipi primitivi con tipi di ritorno polimorfici?
- 24. tipi primitivi enum - esiste
- 25. Confusione tra i tipi di dati OpenCv4Android e C++
- 26. Tipi di dati di Windows ... perché così ridondanti/non descrittivi?
- 27. Java definisce la dimensione dei suoi tipi primitivi ovunque?
- 28. Perché i tipi senza costruttori di dati sono validi?
- 29. "Tipi primitivi" rispetto a "tipi di valore predefiniti"
- 30. tipi di dati ricorsivi templated
Naturalmente, è possibile eseguire: Numero intero i2 = 10; – Joshua
@Joshua: vero, ma questo è dovuto al fatto che l'autoboxing entra in gioco. Dietro le copertine c'è una conversione tra una primitiva e la sua classe wrapper. – coobird
E, ovviamente: * Oggetto –