logo

Tipi di dati di riferimento in Java

Java fornisce due tipi di

Tipi di riferimento Java

Esistono i seguenti cinque tipi di riferimento in Java:

Tipo di riferimento Descrizione
Classe È un insieme di istruzioni. Descrive il contenuto dell'oggetto.
Vettore Fornisce la struttura dati a dimensione fissa che memorizza gli elementi dello stesso tipo.
Annotazioni Fornisce un modo per associare i metadati agli elementi del programma.
Interfaccia È implementato dalle classi Java.
Enumerazione È un tipo speciale di classe indipendente dai tipi. Ogni elemento all'interno dell'enumerazione è un'istanza di quell'enumerazione.

Tipi di dati di riferimento e primitivi

Tipo di riferimento Tipo primitivo
Non è predefinito tranne la stringa. È predefinito in Java.
Tutti i tipi di riferimento iniziano con la lettera maiuscola. Tutti i tipi primitivi iniziano con una lettera minuscola.
I tipi non primitivi hanno tutti la stessa dimensione. La dimensione di un tipo primitivo dipende dal tipo di dati.
Viene utilizzato per invocare o chiamare metodi. Non possiamo invocare il metodo con un tipo primitivo.
Può essere nullo. Non può essere nullo. Ha sempre valore.
Esempi di tipi di dati di riferimento sono class, Array, String, Interface, ecc. Esempi di tipi di dati primitivi sono int, float, double, Boolean, long, ecc.
Per impostazione predefinita, JVM alloca 8 byte per ciascuna variabile di riferimento. La sua dimensione dipende dal tipo di dati.
Esempio : Dimostrazione d1; Esempio : numero intero=78;

Allocazione della memoria e Garbage Collection

In Giava, il nuova parola chiave viene utilizzato per creare un file esempio della classe. In altre parole, crea un'istanza di una classe allocandola memoria per un nuovo oggetto e restituendo un riferimento a quella memoria. Gli oggetti occupano memoria nello spazio heap Java. Possiamo anche usare la parola chiave new per creare il file oggetto matrice .

 ClassName objectName = new ClassName(); 

Se non sono presenti riferimenti a un oggetto, la memoria utilizzata da quell'oggetto può essere recuperata durante il processo di Garbage Collection.

Conversione tra tipo primitivo e tipo di riferimento

Viene richiamata la conversione del tipo primitivo in tipo riferimento autoboxing e viene chiamata la conversione del tipo di riferimento in tipo primitivo spacchettamento .

Confronto tra tipi di riferimento

Possiamo anche confrontare i tipi di riferimento in Java. Java offre due modi per confrontare i tipi di riferimento:

Utilizzando l'operatore uguale (==).

Confronta le posizioni di memoria degli oggetti. Se l'indirizzo di memoria (riferimento) di entrambi gli oggetti è lo stesso, gli oggetti sono uguali. Tieni presente che non confronta il contenuto dell'oggetto. Per esempio:

 Demo d1 = new Demo('Atlanta'); //creating a reference of Demo class Demo d2 = d1; //assigning the reference d1 into d2 if(d1=d2) //comparing reference 

Utilizzando il metodo String.equals()

Il metodo appartiene a Corda classe. Ha la precedenza su equivale() metodo del Oggetto classe . Utilizza anche l'operatore uguale (==) per confrontare il tipo di riferimento. Ad esempio, considera il seguente frammento di codice:

 String str1='JAVA'; String str2='JAVA'; String str3='java'; System.out.println(str1.equals(str2)); //returns true because content and case is same System.out.println(str1.equals(str3)); //returns false because case is not same 

Copia del tipo di riferimento

Ci sono due possibilità quando copiamo i tipi di riferimento: viene creata una copia del riferimento a un oggetto oppure viene creata una copia effettiva (creando una nuova copia) dell'oggetto.

Nell'esempio seguente abbiamo assegnato un riferimento all'oggetto. Se abbiamo apportato modifiche all'oggetto, rifletterà anche il riferimento e viceversa.

 Sum s1 = new Sum(); Sum s2= s1;