Sobes.tech

Java

Si estuvieras diseñando GC, ¿qué enfoques de recolección de basura conoces además del recorrido del grafo de alcanzabilidad?

Senior
277

¿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?

Senior
271

Implemente RecommenderService con los métodos getTop(User user, int limit) y addDocument(Document document), utilizando un almacenamiento en memoria

Senior
209

¿Cuánto pesa un puntero? ¿Qué es eso?

Senior
197

¿Para qué sirve la pila y para qué sirve el montón? ¿Cuál es la diferencia?

Senior
189

¿Por qué la prueba fallaba con NullPointerException y cómo solucionarlo?

Senior
188

¿Qué es un heap (montículo)?

Senior
184

¿Cómo se eliminan los objetos del heap en Java? Habla sobre el recolector de basura.

Senior
173

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.

Senior
170

¿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)?

Senior
166

¿Qué métodos de comunicación entre procesos (IPC) conoces a nivel de interfaces del sistema operativo Unix?

Senior
166

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

Senior
160

¿Para qué sirve synchronized? ¿Qué usarías para implementar un contador seguro para hilos en lugar de synchronized?

Senior
156

¿Qué problema puede surgir en un entorno de producción cuando múltiples solicitudes REST acceden en paralelo al servicio?

Senior
155

/** * 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 */

Senior
154

¿Cómo aparece un primitivo en la pila y cómo en el montón?

Senior
154

¿Cuáles son las desventajas del enfoque actual de ordenar toda la lista en cada llamada a getTop?

Senior
153

Descifra la abreviatura ACID y explica cada propiedad.

Senior
151

¿Qué es la llamada al sistema fork en los sistemas operativos de la familia Unix?

Senior
149

¿Cómo implementar correctamente las dependencias (Inyección de Dependencias) en un servicio — qué enfoque es más recomendable?

Senior
148
/2