Tipo de datos primitivo frente a tipo de datos de objeto en Java con ejemplos

Tipo de datos primitivos : en Java, los tipos de datos primitivos son los tipos de datos predefinidos de Java. Especifican el tamaño y el tipo de cualquier valor estándar. Java tiene 8 tipos de datos primitivos, a saber, byte, short, int, long, float, double, char y boolean. Cuando se almacena un tipo de datos primitivo, es a la pila a la que se le asignarán los valores. Cuando se copia una variable, se crea otra copia de la variable y los cambios realizados en la variable copiada no reflejarán los cambios en la variable original. Aquí hay un programa Java para demostrar todos los tipos de datos primitivos en Java.

Tipo de datos de objeto : también se denominan tipos de datos no primitivos o de referencia. Se llaman así porque se refieren a cualquier objeto en particular. A diferencia de los tipos de datos primitivos, los usuarios de Java crean los no primitivos. Los ejemplos incluyen arrays, strings, clases, interfaces, etc. Cuando se almacenarán las variables de referencia, la variable se almacenará en la pila y el objeto original se almacenará en el montón. En el tipo de datos Objeto, aunque se crearán dos copias, ambas apuntarán a la misma variable en el montón, por lo tanto, los cambios realizados en cualquier variable reflejarán el cambio en ambas variables. Aquí hay un programa Java para demostrar arrays (un tipo de datos de objeto) en Java.

Diferencia entre los tipos de datos primitivos y de objetos en Java: 

Ahora veamos un programa que demuestra la diferencia entre los tipos de datos primitivos y de objetos en Java. 

Java

import java.lang.*;
import java.util.*;
 
class GeeksForGeeks {
    public static void main(String ar[])
    {
        System.out.println("PRIMITIVE DATA TYPES\n");
        int x = 10;
        int y = x;
        System.out.print("Initially: ");
        System.out.println("x = " + x + ", y = " + y);
 
        // Here the change in the value of y
        // will not affect the value of x
        y = 30;
 
        System.out.print("After changing y to 30: ");
        System.out.println("x = " + x + ", y = " + y);
        System.out.println(
            "**Only value of y is affected here "
            + "because of Primitive Data Type\n");
 
        System.out.println("REFERENCE DATA TYPES\n");
        int[] c = { 10, 20, 30, 40 };
 
        // Here complete reference of c is copied to d
        // and both point to same memory in Heap
        int[] d = c;
 
        System.out.println("Initially");
        System.out.println("Array c: "
                           + Arrays.toString(c));
        System.out.println("Array d: "
                           + Arrays.toString(d));
 
        // Modifying the value at
        // index 1 to 50 in array d
        System.out.println("\nModifying the value at "
                           + "index 1 to 50 in array d\n");
        d[1] = 50;
 
        System.out.println("After modification");
        System.out.println("Array c: "
                           + Arrays.toString(c));
        System.out.println("Array d: "
                           + Arrays.toString(d));
        System.out.println(
            "**Here value of c[1] is also affected "
            + "because of Reference Data Type\n");
    }
}
Producción

PRIMITIVE DATA TYPES

Initially: x = 10, y = 10
After changing y to 30: x = 10, y = 30
**Only value of y is affected here because of Primitive Data Type

REFERENCE DATA TYPES

Initially
Array c: [10, 20, 30, 40]
Array d: [10, 20, 30, 40]

Modifying the value at index 1 to 50 in array d

After modification
Array c: [10, 50, 30, 40]
Array d: [10, 50, 30, 40]
**Here value of c[1] is also affected because of Reference Data Type

Veamos la diferencia entre el tipo de datos primitivo y el de objeto de forma tabular.  

Propiedades Tipos de datos primitivos Objetos
Origen Tipos de datos predefinidos Tipos de datos definidos por el usuario
Estructura almacenada Almacenado en una pila La variable de referencia se almacena en la pila y el objeto original se almacena en el montón
Cuando se copia Se crean dos variables diferentes junto con una asignación diferente (solo los valores son iguales) Se crean dos variables de referencia, pero ambas apuntan al mismo objeto en el montón
Cuando se realizan cambios en la variable copiada El cambio no se refleja en los originales. Cambios reflejados en los originales.
Valor por defecto Los tipos de datos primitivos no tienen nulo como valor predeterminado El valor predeterminado para la variable de referencia es nulo
Ejemplo byte, corto, int, largo, flotante, doble, char, booleano array, clase de string, interfaz, etc.

Publicación traducida automáticamente

Artículo escrito por rishabhsingh054 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *