Si estuvieras diseñando GC, ¿qué enfoques de recolección de basura conoces además del recorrido del grafo de alcanzabilidad?
Java
¿Qué es un deadlock? ¿En qué se diferencia de una condición de carrera? ¿Cómo evitar un deadlock, incluso si no es posible determinar el orden de adquisición de los bloqueos con anticipación?
Implemente RecommenderService con los métodos getTop(User user, int limit) y addDocument(Document document), utilizando un almacenamiento en memoria
¿Cuánto pesa un puntero? ¿Qué es eso?
¿Para qué sirve la pila y para qué sirve el montón? ¿Cuál es la diferencia?
¿Por qué la prueba fallaba con NullPointerException y cómo solucionarlo?
¿Qué es un heap (montículo)?
¿Cómo se eliminan los objetos del heap en Java? Habla sobre el recolector de basura.
Compare el rendimiento de los siguientes fragmentos de código que copian elementos de un array de Integer a un array de int y viceversa, incluyendo el caso en que se crean nuevos objetos Integer a partir de valores int: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Analiza y explica las diferencias en rendimiento y comportamiento entre estos enfoques.
¿Qué principio SOLID se viola en la implementación actual, donde el servicio está estrechamente acoplado a una implementación específica de almacenamiento (ArrayList)?
¿Qué métodos de comunicación entre procesos (IPC) conoces a nivel de interfaces del sistema operativo Unix?
int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } }
¿Para qué sirve synchronized? ¿Qué usarías para implementar un contador seguro para hilos en lugar de synchronized?
¿Qué problema puede surgir en un entorno de producción cuando múltiples solicitudes REST acceden en paralelo al servicio?
/** * Buscar dos números en un array cuya suma sea igual a un número dado * <p> * Escribe una función que acepte un array de números positivos no ordenados como primer argumento * y un número positivo como segundo argumento. La función debe devolver true si en el array * hay 2 números cuya suma da el segundo argumento. * <p> * Entrada: ([10, 15, 3, 7], 17) * Salida: true */
¿Cómo aparece un primitivo en la pila y cómo en el montón?
¿Cuáles son las desventajas del enfoque actual de ordenar toda la lista en cada llamada a getTop?
Descifra la abreviatura ACID y explica cada propiedad.
¿Qué es la llamada al sistema fork en los sistemas operativos de la familia Unix?
¿Cómo implementar correctamente las dependencias (Inyección de Dependencias) en un servicio — qué enfoque es más recomendable?