web-dev-qa-db-fra.com

Quelle est la différence entre les types primitif et référence?

Ceci est une question d’examen passé et je me demandais quels types de type primitif et de référence sont d’abord? Avec un tableau, je sais que le type de référence est celui où il est composé d'objets ou de variables, mais un type primitif est celui où vous créez le tableau avec seulement int ou des chaînes. (droite?)

Comment pensez-vous que vous répondriez à la question sur le test et obtiendriez un bon crédit? Sans vraiment parler directement d'un type primitif ARRAY ... Y a-t-il un moyen de le faire sans cela? Ou pensez-vous qu'il serait bon de simplement l'expliquer avec le tableau.

52
QuackMan245

Voici les types primitifs en Java:

  • booléen
  • octet
  • court
  • carboniser
  • int
  • longue
  • float
  • double

Tous les autres types sont des types de référence: ils référencent des objets.

Ceci est la première partie de la tutoriel Java sur les bases du langage .

41
JB Nizet

Du livre OCA Java SE 7

Tout comme les hommes et les femmes sont fondamentalement différents (selon John Gray, auteur de Men Are from Mars, les femmes Are of Venus), les variables primitives et les variables de référence à un objet diffèrent les unes des autres de multiples façons. La différence fondamentale réside dans le fait que les variables primitives stockent les valeurs réelles, tandis que les variables de référence stockent les adresses des objets auxquels elles se rapportent. Supposons qu’une classe Person est déjà définie. Si vous créez une variable int a et une variable de référence d'objet personne, ils stockeront leurs valeurs en mémoire, comme illustré à la figure 2.13.

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

enter image description here

119

Types de données primitives:

  • Prédéfini par la langue et nommé par un mot clé
  • Total non = 8
    booléen
    carboniser
    octet
    court
    entier
    longue
    flotte
    double

Types de données référence/objet:

  • Créé à l'aide de constructeurs définis des classes
  • Utilisé pour accéder aux objets
  • La valeur par défaut de toute variable de référence est null
  • La variable de référence peut être utilisée pour faire référence à tout objet du type déclaré ou de tout type compatible.
7
Gaurav Tyagi

ce sont des types de données primitifs

  • booléen
  • personnage
  • octet
  • court
  • entier
  • longue
  • float
  • double

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

c'est la différence la plus importante

3
Mustafa Hussain

Comme beaucoup ont indiqué plus ou moins correctement ce que sont les types de référence et les types primitifs, on pourrait être intéressé par le fait que nous avons quelques types plus pertinents en Java. Voici la liste complète des types dans Java (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 concret dont les instances étendent Object (interface, classe, enum, tableau). De plus, TypeParameter est en fait un type de référence!

Integer

Remarque: La différence entre le type primitif et le type référence oblige à recourir à la boxe pour convertir les primitives dans les instances d'objet et inversement.

Remarque2: Un paramètre de type décrit un type ayant une limite facultative inférieure ou supérieure et pouvant être référencé par nom dans son contexte (contrairement au type de caractère générique). Un paramètre de type peut généralement être appliqué aux types et méthodes paramétrés (classes/interfaces). Le type de paramètre définit un identificateur de type.

Type de caractère générique

Exprime un type inconnu (comme tout type dans TypeScript) pouvant avoir une limite inférieure ou supérieure en utilisant super ou extend.

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

Type de vide

Le néant. Aucune valeur/instance possible.

void method();

Type nul

La seule représentation est "nulle". Il est utilisé notamment lors des calculs d'interférence de type. Null est un cas spécial appartenant logiquement à n'importe quel type (peut être assigné à n'importe quelle variable de n'importe quel type) mais n'est en réalité considéré comme une instance d'aucun type (par exemple ((instance nulle de Object) == false).

null

Type d'union

Un type d'union est un type qui correspond à un ensemble de types alternatifs. Malheureusement, dans Java il n’existe que pour l’instruction multi catch.

catch(IllegalStateException | IOException e) {}

Type d'interférence

Un type compatible avec plusieurs types. Depuis in Java une classe a au plus une super classe (Object n'en a pas)), les types d'interférence permettent uniquement au premier type d'être une classe et tout 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 (non placées entre crochets, paramètre unique).

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

Type de var

Type inconnu introduit par une déclaration de variable identifiant le mot clé 'var'.

var variable = list.get(0);
2
Martin Kersten

Primitives vs références

D'abord: -

Les types primitifs sont les types de données de base: byte, short, int, long, float, double , boolean, char. Les variables primitives stockent des valeurs primitives. Les types de référence sont toute classe instanciable ainsi que les tableaux: String, Scanner, Random, Die, int[], String[], etc. Les variables de référence stockent les adresses aux emplacements en mémoire où les données sont stockées.

Seconde: -

Les types primitifs stockent des valeurs mais le magasin de type référence traite les objets dans l'espace de tas. N'oubliez pas que les variables de référence ne sont pas des pointeurs comme vous l'avez peut-être vu en C et C++, elles ne sont que des poignées d'objets, afin que vous puissiez y accéder et modifier quelque peu l'état de l'objet.

En savoir plus: http://javarevisited.blogspot.com/2015/09/difference-between-primitive-and-reference-variable-Java.html#ixzz3xVBhi2cr

2
Sachindra N. Pandey

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

Primatives :

booléen

personnage

octet

court

entier

longue

float

double

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

1
jamesTheProgrammer
  1. Java a huit types primitifs: int, double, float, long, court, octet, char, boolean. Cela signifie que le programmeur ne peut pas définir de nouveau type primitif.
  2. Les types de référence sont définis par l'utilisateur, leur nombre est donc illimité. 4 Java types de référence fondamentaux sont les suivants: Classes, Interfaces, Tableaux, Enums.
  3. Les types primitifs représentent des valeurs uniques. Types de référence Types d'agrégats contenant zéro ou plusieurs valeurs ou objets primitifs.
  4. Les types primitifs nécessitent entre un et huit octets de mémoire. Lorsqu'une valeur primitive est stockée dans une variable ou transmise à une méthode, l'ordinateur crée une copie des octets et conserve les valeurs. Les objets d'autre part, peuvent nécessiter plus de mémoire.
0
Amir Amiri