Quelle est la différence entre un type primitif et un type de référence?

il s'agit d'une question d'examen antérieure et je me demandais ce que sont d'abord un type primitif et un type de référence? Avec un tableau je sais que le type de référence est où le tableau est composé d'objets ou de variables, mais un type primitif est où vous créeriez le tableau avec juste int ou des chaînes. (à droite?)

Comment croyez-vous que vous répondriez à la question de l'examen et que vous obtiendriez de bons points? Sans vraiment se référer directement à un type de tableau primitif... Est-il moyen de le faire sans que? Ou tu penses qu'il serait bien de l'expliquer avec le tableau.

44
demandé sur QuackMan245 2012-01-09 19:30:37

9 réponses

ce sont les types primitifs en Java:

  • boolean
  • octet
  • court
  • char
  • int
  • long
  • float
  • double

tous les autres types sont des types de référence: ils font référence à des objets.

C'est la première partie de la Java tutorial sur les bases de la langue .

36
répondu JB Nizet 2012-01-09 15:33:05

du livre OCA JAVA SE 7

tout comme les hommes et les femmes sont fondamentalement différents (selon Jean Gray, auteur de les Hommes viennent de Mars, les Femmes viennent de Vénus), primitive les variables et les variables référence d'objet diffèrent les uns des autres dans de multiples façons. La différence fondamentale est que les variables primitives stockent les valeurs réelles, tandis que les variables de référence stockent les adresses de les objets auxquels elles se rapportent. Supposons qu'une personne de classe être déjà définis. Si vous créez une variable int a, et un objet la variable de référence personne, ils stockeront leurs valeurs dans la mémoire comme montré dans la figure 2.13.

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

enter image description here

93
répondu BERGUIGA Mohamed Amine 2015-08-17 11:57:08

Types De Données Primitives:

  • prédéfini par la langue et nommé par un mot-clé
  • Total n = 8

    booléen

    char

    byte

    court

    entier

    long

    flotteur

    double

Types De Données De Référence/D'Objet:

  • Créé à l'aide de constructeurs définis des classes
  • utilisé pour accéder à des objets
  • valeur par défaut de toute variable de référence est null
  • variable de Référence peut être utilisé pour désigner un objet du type déclaré ou n'importe quel type.
5
répondu Gaurav Tyagi 2016-08-31 12:36:46

en bref, Au niveau le plus bas nous avons des groupes de types primitifs comme "byte, short, int, long, float, double, boolean, char" et les types de référence sont principalement conçus pour grouper les types primitifs ensemble. Vous pouvez donc avoir un groupe de int en tant que liste de, groupe de char comme une chaîne de caractères, la classe des primitives etc.

un autre facteur important est le type primitif contenant une valeur et une adresse de référence.

int item = 3;
int item2 = item;

ce qui rend item2 contenir une valeur 3 encore. Mais pour le type de référence dire

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

q tiendra l'adresse de l'objet p et dans VM son toujours un point. De même l'adresse est passée aux méthodes pour le type de référence tandis que la valeur sera passée pour le type primitif. La plupart des autres différences sont également associées à la valeur et à l'adresse.

4
répondu Paras Singh 2016-01-12 18:15:06

ce sont des types de données primitives

  • boolean
  • caractère
  • octet
  • court
  • entier
  • long
  • float
  • double

enregistré dans la pile dans la mémoire qui est gérée mémoire d'autre part Type de données d'objet ou de référence type de données stockées dans la tête dans le mémoire gérée par GC

c'est la différence la plus importante

3
répondu MuStafa HuSsain 2013-07-25 05:39:10

la réponse courte est primitives sont des types de données, tandis que les références sont des pointeurs, qui ne tiennent pas leurs valeurs, mais pointent vers leurs valeurs et sont utilisés sur/avec des objets.

Primatives :

boolean

caractère

octet

court

entier

long

float

double

Beaucoup de bonnes références qui expliquent ces concepts de base. http://www.javaforstudents.co.uk/Types

1
répondu jamesTheProgrammer 2013-03-01 18:51:41

Primitives vs. References

premier: -

types Primitifs sont les types de base de données: byte , short , int , long , float , double , boolean , char . Les variables primitives stockent les valeurs primitives. Les types de référence sont n'importe quelle classe instanciable aussi bien que les tableaux: String , Scanner , Random , Die , int[] , String[] , etc. Les variables de référence stockent les adresses dans la mémoire pour l'endroit où les données sont stockées.

la Seconde:-

les types primitifs stockent des valeurs mais le type de référence stocke des poignées aux objets dans l'espace de tas. Rappelez-vous, les variables de référence ne sont pas des pointeurs comme vous avez pu voir en C et C++, ce sont juste des poignées vers des objets, de sorte que vous pouvez y accéder et faire quelques changements sur l'état de l'objet.

Lire la suite: http://javarevisited.blogspot.com/2015/09/difference-between-primitive-and-reference-variable-java.html#ixzz3xVBhi2cr

1
répondu Sachindra N. Pandey 2016-07-10 05:17:18

comme beaucoup ont indiqué plus ou moins correctement quels sont les types de référence et primitifs, on pourrait être intéressé que nous ayons quelques types plus pertinents en Java. Voici la liste complète des types en java (pour autant que je sache (JDK 11)).

Type Primitif

Décrit une valeur (et non un type).

11

Type De Référence

décrit un type de béton qui étend l'objet (interface, classe, enum, array). De plus, TypeParameter est en fait un type de référence!

Integer

Note: la différence entre le type primitif et le type de référence oblige à compter sur la boxe pour convertir les primitifs dans les instances D'objet et vice versa.

Note2: un paramètre type décrit un type ayant une limite inférieure ou supérieure optionnelle et pouvant être référencé par nom dans son contexte (par opposition au type de Joker). Un paramètre de type généralement applicable aux types paramétrés (classes/interfaces) et aux méthodes. Le paramètre type définit un identificateur de type.

Type Joker

exprime un type inconnu (comme n'importe quel en dactylographiant) qui peut avoir une limite inférieure ou supérieure en utilisant super ou extend.

? extends List<String>
? super ArrayList<String>

Type Vide

néant. Aucune valeur / instance possible.

void method();

Type Null

La seule représentation est 'null'. Il est utilisé surtout lors de brouillage des calculs. Null est un cas particulier qui appartient logiquement à n'importe quel type (peut être assigné à n'importe quelle variable de n'importe quel type) mais qui n'est pas considéré comme une instance de n'importe quel type (par exemple (null instanceof Object) = = = false).

null

Union Type

Un type d'union est un type qui est réel un ensemble de types. Malheureusement, en Java, il n'existe que pour la déclaration de captures multiples.

catch(IllegalStateException | IOException e) {}

Type D'Interférence

type compatible avec plusieurs types. Puisque dans Java une classe A au plus une super classe (objet n'en a pas), les types d'interférence permettent seulement au premier type d'être une classe et chaque autre type doit être un type d'interface.

void method(List<? extends List<?> & Comparable> comparableList) {}

Type Inconnu

le type est inconnu. C'est le cas de certaines définitions Lambda (pas entre parenthèses, paramètre unique).

list.forEach(element -> System.out.println(element.toString)); //element is of unknown type

Type Var

type Inconnu introduite par une déclaration de variable d'apercevoir à l' 'var' mot-clé.

var variable = list.get(0);
1
répondu Martin Kersten 2018-10-02 20:36:31
  1. Java a huit types primitifs: int, double, float, long, short, byte, char, boolean. Cela signifie que programmeur ne peut pas définir un nouveau type primitif.
  2. Le type de référence
  3. est défini par l'utilisateur, il y en a donc un nombre illimité. 4 les types de référence fondamentaux de java sont: Classes, Interfaces, tableaux, Enums.
  4. Les types primitifs
  5. représentent des valeurs uniques. Les types de référence regroupent les types qui contiennent des valeurs ou des objets primitifs à zéro ou plus.
  6. Les types primitifs
  7. nécessitent entre un et huit octets de mémoire. Lorsqu'une valeur primitive est stocké dans une variable ou passés à une méthode, l'ordinateur fait une copie des octets et stocker les valeurs. Objets d'autre part, peuvent nécessiter plus de mémoire.
0
répondu Amir Amiri 2017-07-02 07:20:49