Cada vez que se declara una array en el programa, se le asigna memoria contigua.
Dirección base del arreglo: La dirección del primer elemento del arreglo se llama dirección base del arreglo. Cada elemento ocupará el espacio de memoria requerido para acomodar los valores de su tipo, es decir; dependiendo del tipo de datos de los elementos, se asignan 1, 4 u 8 bytes de memoria para cada elemento. La siguiente dirección de memoria se asigna al siguiente elemento de la array. Este proceso de asignación de memoria continúa hasta que se supera el número de elementos de array.
Ubicaciones de memoria de JVM: antes de pasar a la pregunta de dónde se almacena una array en Java, debemos conocer las ubicaciones de memoria en JVM (Java Virtual Machine) . Están:
- Montón: los objetos de Java se almacenan en un área llamada montón. El montón se crea en el inicio de JVM y puede crecer o reducirse mientras se ejecuta la aplicación. Cuando las pilas del montón se llenan, se recogen los residuos. Durante la recolección de basura, los objetos que ya no están en uso se eliminan, dejando espacio para nuevos objetos.
- Pila : una pila es una estructura de datos (último en entrar, primero en salir). Soporta dos operaciones básicas llamadas push y pop. La operación de inserción agrega un elemento a la parte superior de la pila y la operación de extracción elimina un elemento de la parte superior de la pila. Actúa como un almacenamiento para la variable parcial.
- Registros de PC: el registro del contador de programa (PC) realiza un seguimiento de la instrucción actual que se ejecuta en un momento dado. Es como un puntero a la instrucción actual en la secuencia de instrucciones de un programa.
- Motor de ejecución: el motor de tiempo de ejecución es el componente principal de la máquina virtual de Java (JVM). Se comunica con diferentes áreas de memoria de la JVM. Cada subproceso de una aplicación en ejecución es una instancia separada del tiempo de ejecución de la máquina virtual
- Pila de métodos nativos: los métodos nativos pueden acceder a funciones y API específicas del sistema que no están disponibles directamente en Java. Native Method es una interfaz para que Java llame a código que no es Java. Un método nativo es un método Java: el método se implementa en un lenguaje que no es Java, como C.
¿Dónde está asignada la memoria para una array en Java?
La memoria se asigna en Heap para el Array en Java.
En Java, los tipos de referencia se almacenan en el área Heap. Como las arrays también son tipos de referencia (se pueden crear con la palabra clave «nuevo» ), también se almacenan en el área Heap. Las arrays se utilizan para almacenar múltiples valores en una sola variable, en lugar de declarar variables separadas para cada valor. En Java, una array almacena valores primitivos (int, char, etc) o referencias (es decir, punteros) a objetos.
Array unidimensional:
int arr[] = new int[5];
El int[] arr es solo la referencia a la array de cinco enteros. Si crea una array con 50 enteros, es lo mismo: se asigna una array y se devuelve una referencia.
int intArray[]; //declarando array
intArray = new int[10]; // asignando memoria a la array
Usamos new para asignar una array, debe especificar el tipo y la cantidad de elementos para asignar.
Array de objetos:
En el caso de una array de objetos, la referencia a la array se almacena en el montón. Y los propios elementos de la array también almacenan la referencia a los objetos.
clase A{
. . .
}public class Ex{
public static void main(String[] args) {
A arr[] = new A[5]
}
}
Publicación traducida automáticamente
Artículo escrito por ayushcoding100 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA