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"); } }
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