Tipi di dati Java
Java è tipizzato staticamente ed è anche un linguaggio fortemente tipizzato perché, in Java, ogni tipo di dato (come intero, carattere, esadecimale, decimale compresso e così via) è predefinito come parte del linguaggio di programmazione e tutte le costanti o variabili definite per un dato programma deve essere descritto con uno dei tipi di dati Java.
Tipi di dati in Java
Tipi di dati in Java sono di diverse dimensioni e valori che possono essere memorizzati nella variabile creata secondo comodità e circostanze per coprire tutti i casi di test. Java ha due categorie in cui i tipi di dati sono separati
- Tipo di dati primitivo: come booleano, char, int, short, byte, long, float e double
- Tipo di dati non primitivi o tipo di dati oggetto: come String, Array, ecc.
Tipi di dati primitivi in Java
I dati primitivi sono solo valori singoli e non hanno capacità speciali. Esistono 8 tipi di dati primitivi. Essi sono rappresentati di seguito in formato tabellare come segue:
| Tipo | Descrizione | Predefinito | Misurare | Letterali di esempio | Intervallo di valori |
|---|---|---|---|---|---|
| booleano | vero o falso | falso | 1 po' | vero falso | vero falso |
| byte | intero in complemento a due | 0 | 8 bit | (nessuno) | da -128 a 127 |
| car | Carattere Unicode | u0000 | 16 bit | 'a', 'u0041', '101', '', '', ' ', 'b' | rappresentazione in caratteri dei valori ASCII da 0 a 255 |
| corto | intero in complemento a due | 0 | 16 bit | (nessuno) | Da -32.768 a 32.767 |
| int | intero in complemento a due | 0 | 32 bit | -2,-1,0,1,2 | -2.147.483.648 A 2.147.483.647 |
| lungo | intero in complemento a due | 0 | 64 bit | -2L,-1L,0L,1L,2L | -9.223.372.036.854.775.808 A 9.223.372.036.854.775.807 |
| galleggiante | Virgola mobile IEEE 754 | 0,0 | 32 bit | 1.23e100f, -1.23e-100f, .3f, 3.14F | fino a 7 cifre decimali |
| Doppio | Virgola mobile IEEE 754 | 0,0 | 64 bit | 1.23456e300d, -123456e-300d, 1e1d | fino a 16 cifre decimali |
Parliamo e implementiamo ciascuno dei seguenti tipi di dati che sono i seguenti:
1. Tipo di dati booleano
Il tipo di dati booleano rappresenta solo un bit di informazione o vero o falso che ha lo scopo di rappresentare i due valori di verità della logica e dell'algebra booleana, ma la dimensione del tipo di dati booleano è dipendente dalla macchina virtuale . I valori di tipo booleano non vengono convertiti in modo implicito o esplicito (con cast) in nessun altro tipo. Ma il programmatore può scrivere facilmente il codice di conversione.
Sintassi:
boolean booleanVar;
Misurare: Dipendente dalla macchina virtuale
2. Tipo di dati byte
Il tipo di dati byte è un numero intero in complemento a due con segno a 8 bit. Il tipo di dati byte è utile per risparmiare memoria in array di grandi dimensioni.
Sintassi:
byte byteVar;
Misurare: 1 byte (8 bit)
3. Tipo di dati breve
Il tipo di dati breve è un numero intero in complemento a due con segno a 16 bit. Similmente al byte, usa un breve per risparmiare memoria in array di grandi dimensioni, in situazioni in cui il risparmio di memoria è davvero importante.
Sintassi:
short shortVar;
Misurare: 2 byte (16 bit)
4. Tipo di dati intero
È un numero intero in complemento a due con segno a 32 bit.
Sintassi:
int intVar;
Misurare: 4 byte (32 bit)
Ricordare: In Java SE 8 e versioni successive, possiamo utilizzare il tipo di dati int per rappresentare un numero intero a 32 bit senza segno, che ha un valore nell'intervallo [0, 2 32 -1]. Utilizzare la classe Integer per utilizzare il tipo di dati int come numero intero senza segno.
5. Tipo di dati lungo
La gamma di un lungo è piuttosto ampia. Il tipo di dati lungo è un numero intero in complemento a due a 64 bit ed è utile in quelle occasioni in cui un tipo int non è abbastanza grande da contenere il valore desiderato. La dimensione del tipo di dati lungo è 8 byte (64 bit).
Sintassi:
long longVar;
Ricordare: In Java SE 8 e versioni successive, è possibile utilizzare il tipo di dati long per rappresentare un valore di 64 bit senza segno, che ha un valore minimo pari a 0 e un valore massimo pari a 2 64 -1. La classe Long contiene anche metodi come confrontare Unsigned, dividere Unsigned, ecc. per supportare operazioni aritmetiche per unsigned long.
6. Tipo di dati in virgola mobile
Il tipo di dati float è un tipo a virgola mobile IEEE 754 a 32 bit a precisione singola. Utilizzare un float (invece di double) se è necessario risparmiare memoria in grandi array di numeri a virgola mobile. La dimensione del tipo di dati float è 4 byte (32 bit).
Sintassi:
float floatVar;
7. Tipo di dati doppio
Il tipo di dati double è un tipo a virgola mobile IEEE 754 a 64 bit a doppia precisione. Per i valori decimali, questo tipo di dati è generalmente la scelta predefinita. La dimensione del tipo di dati double è 8 byte o 64 bit.
Sintassi:
double doubleVar;
Nota: Entrambi i tipi di dati float e double sono stati progettati appositamente per i calcoli scientifici, dove gli errori di approssimazione sono accettabili. Se la precisione è la preoccupazione principale, si consiglia di non utilizzare questi tipi di dati e utilizzare invece la classe BigDecimal.
Si consiglia di passare arrotondamento degli errori in Java.
8. Tipo di dati carattere
Il tipo di dati char è un singolo carattere Unicode a 16 bit con la dimensione di 2 byte (16 bit).
Sintassi:
char charVar;
Perché la dimensione di char 2 byte in Java?
Quindi, altri linguaggi come C/C++ usano solo caratteri ASCII e per rappresentare tutti i caratteri ASCII sono sufficienti 8 bit. Ma Java usa il file Sistema Unicode e non sistema di codice ASCII e per rappresentare il sistema Unicode 8 bit non sono sufficienti per rappresentare tutti i caratteri, quindi Java utilizza 2 byte per i caratteri. Unicode definisce un set di caratteri completamente internazionale che può rappresentare la maggior parte delle lingue scritte del mondo. È un'unificazione di dozzine di set di caratteri, come latino, greco, cirillico, katakana, arabo e molti altri.
Esempio:
Giava
// Java Program to Demonstrate Char Primitive Data Type> // Class> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Creating and initializing custom character> > char> a => 'G'> ;> > // Integer data type is generally> > // used for numeric values> > int> i => 89> ;> > // use byte and short> > // if memory is a constraint> > byte> b => 4> ;> > // this will give error as number is> > // larger than byte range> > // byte b1 = 7888888955;> > short> s => 56> ;> > // this will give error as number is> > // larger than short range> > // short s1 = 87878787878;> > // by default fraction value> > // is double in java> > double> d => 4.355453532> ;> > // for float use 'f' as suffix as standard> > float> f => 4> .7333434f;> > // need to hold big range of numbers then we need> > // this data type> > long> l => 12121> ;> > System.out.println(> 'char: '> + a);> > System.out.println(> 'integer: '> + i);> > System.out.println(> 'byte: '> + b);> > System.out.println(> 'short: '> + s);> > System.out.println(> 'float: '> + f);> > System.out.println(> 'double: '> + d);> > System.out.println(> 'long: '> + l);> > }> }> |
Produzione
char: G integer: 89 byte: 4 short: 56 float: 4.7333436 double: 4.355453532 long: 12121
Tipo di dati non primitivi o tipi di dati di riferimento
IL Tipi di dati di riferimento conterrà un indirizzo di memoria di valori variabili perché i tipi di riferimento non memorizzeranno il valore della variabile direttamente in memoria. Sono stringhe, oggetti, array, ecc.
1. Stringhe
stringhe sono definiti come un array di caratteri. La differenza tra un array di caratteri e una stringa in Java è che la stringa è progettata per contenere una sequenza di caratteri in una singola variabile mentre un array di caratteri è una raccolta di entità separate di tipo char. A differenza di C/C++, le stringhe Java non terminano con un carattere null.
Sintassi: Dichiarare una stringa
= ;
Esempio:
// Declare String without using new operator String s = 'techcodeview.com'; // Declare String using new operator String s1 = new String('techcodeview.com'); 2. Classe
UN classe è un progetto o prototipo definito dall'utente da cui vengono creati gli oggetti. Rappresenta l'insieme di proprietà o metodi comuni a tutti gli oggetti di un tipo. In generale, le dichiarazioni di classe possono includere questi componenti, nell'ordine:
- Modificatori : una classe può essere pubblica o avere accesso predefinito. Fare riferimento a specificatori di accesso per classi o interfacce in Java
- Nome della classe: Il nome dovrebbe iniziare con la lettera iniziale (maiuscola per convenzione).
- Superclasse (se presente): Il nome del genitore della classe (superclasse), se presente, preceduto dalla parola chiave extends. Una classe può estendere (sottoclasse) solo un genitore.
- Interfacce (se presenti): Un elenco separato da virgole delle interfacce implementate dalla classe, se presenti, precedute dalla parola chiave implements. Una classe può implementare più di un'interfaccia.
- Corpo: Il corpo della classe è racchiuso tra parentesi graffe, { }.
3. Oggetto
UN Oggetto è un'unità base della programmazione orientata agli oggetti e rappresenta entità della vita reale. Un tipico programma Java crea molti oggetti che, come sai, interagiscono invocando metodi. Un oggetto è composto da:
- Stato : È rappresentato dagli attributi di un oggetto. Riflette anche le proprietà di un oggetto.
- Comportamento : È rappresentato dai metodi di un oggetto. Riflette anche la risposta di un oggetto ad altri oggetti.
- Identità : Dà un nome univoco a un oggetto e consente a un oggetto di interagire con altri oggetti.
4. Interfaccia
Come una classe, un interfaccia può avere metodi e variabili, ma i metodi dichiarati in un'interfaccia sono astratti per impostazione predefinita (solo firma del metodo, nessun corpo).
- Le interfacce specificano cosa deve fare una classe e non come. È il modello della classe.
- Un'interfaccia riguarda funzionalità come un Player può essere un'interfaccia e qualsiasi classe che implementa Player deve essere in grado (o deve implementare) move(). Quindi specifica un insieme di metodi che la classe deve implementare.
- Se una classe implementa un'interfaccia e non fornisce corpi di metodi per tutte le funzioni specificate nell'interfaccia, allora la classe deve essere dichiarata astratta.
- Un esempio di libreria Java è Interfaccia comparatore . Se una classe implementa questa interfaccia, può essere utilizzata per ordinare una raccolta.
5. Matrice
UN Vettore è un gruppo di variabili di tipo simile a cui si fa riferimento con un nome comune. Gli array in Java funzionano diversamente rispetto a C/C++. Di seguito sono riportati alcuni punti importanti sugli array Java.
- In Java, tutti gli array vengono allocati dinamicamente. (discusso di seguito)
- Poiché gli array sono oggetti in Java, possiamo trovare la loro lunghezza utilizzando la lunghezza dei membri. Questo è diverso da C/C++ in cui troviamo la lunghezza utilizzando la dimensione.
- Una variabile array Java può anche essere dichiarata come altre variabili con [] dopo il tipo di dati.
- Le variabili nell'array sono ordinate e ciascuna ha un indice che inizia con 0.
- L'array Java può essere utilizzato anche come campo statico, variabile locale o parametro di metodo.
- IL misurare di un array deve essere specificato da un valore int e non da long o short.
- La superclasse diretta di un tipo di array è Object.
- Ogni tipo di array implementa le interfacce Clonabile E java.io.Serializable .
Domande frequenti sui tipi di dati in Java
1. Cosa sono i tipi di dati in Java?
I tipi di dati hanno dimensioni e valori diversi che possono essere archiviati nella variabile creata in base alla comodità e alle circostanze per coprire tutti i casi di test.
2. Quali sono gli 8 tipi di dati utilizzati in Java?
Esistono 8 principali tipi di dati primitivi in Java, come indicato di seguito:
- booleano
- byte
- car
- corto
- int
- lungo
- galleggiante
- Doppio
3. Qual è un tipo primitivo in Java?
I tipi di dati primitivi sono i tipi in Java che possono memorizzare un singolo valore e non forniscono alcuna funzionalità speciale.
4. Perché char utilizza 2 byte in Java e cos'è u0000?
Char utilizza 2 byte in Java perché utilizza il sistema Unicode anziché il sistema ASCII. u000 è l'intervallo più basso del sistema Unicode.
Guardare: Quiz sul tipo di dati in Java