2012-01-09 15 views
41

Questa è una domanda di esame passata e mi chiedevo che tipo e tipo di riferimento primitivi siano i primi a essere disattivati? Con un array so che un tipo di riferimento è dove l'array è composto da oggetti o variabili, ma un tipo primitivo è dove si dovrebbe creare l'array con solo int o stringhe. (giusto?)Qual è la differenza tra i tipi primitivi e di riferimento?

Come pensate di rispondere alla domanda sul test e ottenere un buon credito? Senza veramente riferirsi direttamente a un tipo ARRAY primitivo ... C'è un modo per farlo senza quello? O pensi che sarebbe bene solo spiegarlo con l'array.

+2

'tipo ..primitive è dove si desidera creare l'array con un solo INT o stringhe strings' [o, per essere più precisi:' String's] non sono tipi primitivi in ​​Java – amit

+2

Ogni volta che la gente chiede questo tipo di domande , Li raccomando di imparare prima C. – taskinoor

+0

@taskinoor C ha puntatori non riferimenti –

risposta

36

Questi sono i tipi primitivi in ​​Java:

  • booleano
  • byte
  • breve
  • char
  • int
  • lungo
  • galleggiante
  • doppia

Tutti gli altri tipi sono tipi di riferimento: fanno riferimento agli oggetti.

Questa è la prima parte di Java tutorial about the basics of the language.

+3

Anche se è vero, dubito che otterrà pieno credito per questa risposta. Penso che il docente si aspetti di sapere di più su cosa significano "oggetti di riferimento" e alcuni esempi che mostrano cosa succede a una variabile, in un ambiente di chiamata, se lo si cambia all'interno di un metodo chiamato – amit

+3

Sì, ma non ripeterò tutto quello che viene detto nel tutorial, e preferisco dargli dei puntatori alle pagine dove può imparare piuttosto che una risposta pronta all'uso. –

+0

Si noti inoltre che tutti i tipi di array sono oggetti e possono essere convertiti in/da 'java.lang.Object'. – Nayuki

1

La risposta breve è le primitive sono tipi di dati, mentre i riferimenti sono puntatori, che non mantengono i loro valori ma puntano ai loro valori e sono utilizzati su/con oggetti.

primitive:

booleano

carattere

byte

breve

intero

lungo

galleggiante

doppie

Un sacco di buone referenze che spiegano questi concetti di base.http://www.javaforstudents.co.uk/Types

2

questi sono tipi di dati primitivi

  • booleana
  • carattere
  • byte
  • breve
  • intero
  • lungo
  • galleggiante
  • doppio

salvato nella pila nella memoria che è gestita memoria sull'altro tipo di tipo di dati oggetto mano o riferimento dati memorizzati in testa nella memoria gestita mediante GC

questa è la differenza più importante

+0

No. Un valore primitivo può essere memorizzato nell'heap o nello stack. Sarà nell'heap se si tratta di un campo di qualche oggetto. –

70

dal libro OCA Java SE 7

Proprio come gli uomini e le donne sono fondamentalmente diversi (secondo Giovanni Grey, autore di uomini vengono da Marte, le donne da Venere), primitivaLe variabilie le variabili di riferimento oggetto differiscono l'una dall'altra in in più modi. La differenza fondamentale è che le variabili primitive memorizzano i valori effettivi , mentre le variabili di riferimento memorizzano gli indirizzi di gli oggetti a cui si riferiscono. Supponiamo che una classe Person sia già definita. Se si crea una variabile int a, e un oggetto variabile di riferimento , i valori verranno memorizzati in memoria come mostrato nella figura 2.13.

int a = 77; 
Person person = new Person(); 

enter image description here

+3

Questa dovrebbe essere la risposta accettata! – Solace

+2

sì, avrebbe dovuto essere la risposta accettata !!! –

+0

dovrebbero aumentare il tempo in modo da poter contrassegnare la migliore risposta a una 24 ore e quindi far apparire un promemoria per ricordarti di segnarne una in modo che le persone non la affrettano. Avrei potuto anche dire che i tipi di referente possono memorizzare primitivi, ma sapevo che c'era dell'altro. Grazie. –

3

Insomma, Al livello più basso ci sono un gruppo di tipi primitivi come "byte, short, int, long, float, double, boolean, char" e tipi di riferimento sono principalmente progettato per raggruppare tipi primitivi insieme. Quindi puoi avere un gruppo di int come lista, gruppo di caratteri come stringa, classe dei primitivi ecc.

Un altro fattore importante riguarda il tipo primitivo con un indirizzo di riferimento e di tenuta di riferimento.

int item = 3; 
int item2 = item; 

L'elemento 2 mantiene un valore 3 ancora. Ma per tipo di riferimento dicono

Point p = new Point(1.0, 2.0); 
Point q = p; 

q terrà indirizzo dell'oggetto p in VM sua ancora un punto. Analogamente, l'indirizzo viene passato ai metodi per il tipo di riferimento mentre il valore verrà passato per il tipo primitivo. La maggior parte delle altre differenze sono anche associate al valore e all'indirizzo.

0

Primitivi vs.Riferimenti

Primo: -

tipi primitivi sono i tipi di base di dati: byte, short, int, long, float, double, boolean, char. Le variabili primitive memorizzano i valori primitivi. I tipi di riferimento sono qualsiasi classe istanziabili così come array: String, Scanner, Random, Die, int[], String[], ecc indirizzi variabili riferimento a memorizzare le posizioni nella memoria su dove sono memorizzati i dati.

Secondo: -

primitivi tipi di memorizzare i valori, ma il tipo di riferimento negozio maniglie agli oggetti nello spazio heap. Ricorda che le variabili di riferimento non sono puntatori come potresti aver visto in C e C++, sono solo maniglie sugli oggetti, in modo che tu possa accedervi e apportare qualche modifica allo stato dell'oggetto.

Per saperne di più: http://javarevisited.blogspot.com/2015/09/difference-between-primitive-and-reference-variable-java.html#ixzz3xVBhi2cr

2

primitivi tipi di dati:

  • predefiniti dal linguaggio e prende il nome da una parola chiave
  • Total no = 8
    booleano
    char
    byte
    breve
    interi
    lungo
    galleggiante
    doppia

Riferimento/Oggetto tipi di dati:

  • creata usando costruttori definite delle classi
  • Usato per accedere agli oggetti
  • Valore predefinito di qualsiasi variabile di riferimento è nullo
  • La variabile di riferimento può essere utilizzata per fare riferimento a qualsiasi oggetto del tipo dichiarato o qualsiasi tipo compatibile.
0
  1. Java ha otto tipo primitivo: int, double, galleggiante, lungo, corto, byte, char, booleano. Significa che il programmatore non può definire un nuovo tipo primitivo.
  2. Il tipo di riferimento è definito dall'utente, quindi esiste un numero illimitato di essi. 4 tipi di riferimento fondamentali di java sono: Classi, Interfacce, Array, Enum.
  3. I tipi primitivi rappresentano valori singoli. Tipi di riferimento aggregano tipi che contengono zero o più valori o oggetti primitivi.
  4. I tipi primitivi richiedono da uno a otto byte di memoria.Quando un valore primitivo viene memorizzato in una variabile o passato a un metodo, il computer crea una copia dei byte e mantiene i valori. D'altro canto, gli oggetti potrebbero richiedere più memoria.
Problemi correlati