Una lista de preguntas frecuentes sobre Java de entrevistas de trabajo de programación.

¡Hola todos! En los últimos años, he estado compartiendo muchas preguntas y discusiones de Java Interview individualmente. Muchos de mis lectores me han pedido que los reúna para que puedan tenerlos en el mismo lugar. Esta publicación es el resultado de eso.
Este artículo contiene más de 50 preguntas de la entrevista Java que cubren todos los temas importantes como los fundamentos básicos de Java, Java Collection Framework, Java Multithreading y Concurrencia, Java IO, JDBC, JVM Internals, Problemas de codificación, programación orientada a objetos, etc.
Las preguntas también se recogen de varias entrevistas y, de ninguna manera, son muy difíciles. Es posible que ya los haya visto en su teléfono o en una ronda de entrevistas cara a cara.
Las preguntas también son muy útiles para revisar temas importantes como múltiples subprocesos y colecciones. También he compartido algunos recursos útiles para un mayor aprendizaje y mejora, como The Complete Java MasterClass para repasar y llenar los vacíos en sus habilidades de Java.
entonces que estamos esperando ' Aquí está la lista de algunas de las preguntas de Java más frecuentes en entrevistas para desarrolladores de Java principiantes y experimentados.
Más de 50 preguntas de entrevista de Java para programadores experimentados de 2 a 3 años
Entonces, sin perder más tiempo, aquí está mi lista de algunas de las preguntas de entrevistas de Core Java para programadores principiantes. Esta lista se centra en los desarrolladores principiantes y con menos experiencia, como alguien con 2 o 3 años de experiencia en Java.
1) ¿Cómo logra Java la independencia de la plataforma? (responder)
pista: bytecode y Java Virtual Machine
2) ¿Qué hay ClassLoader
en Java? (responder)
pista: parte de JVM que carga códigos de bytes para clases. Puede escribir el suyo propio.
3) Escribe un programa Java para comprobar si un número es par o impar. (responder)
pista: puede usar un operador bit a bit, como Y a bit, recuerde, incluso el número tiene cero al final en formato binario y un número impar tiene 1 al final.
4) ¿ Diferencia entre ArrayList
y HashSet
en Java? (responder)
pista: todas las diferencias entre List
y Set
son aplicables aquí, por ejemplo, pedidos, duplicados, búsqueda aleatoria, etc. Consulte Java Fundamentals: Collections por Richard Warburton para obtener más información sobre ArrayList, HashSet y otras colecciones importantes en Java.

5) ¿Qué es el bloqueo doble verificado en Singleton? (responder)
sugerencia: verifique dos veces si las instancias se inicializan o no, primero sin bloqueo y segundo con bloqueo.
6) ¿Cómo se crea Singleton seguro para subprocesos en Java? (responder)
pista: de muchas maneras, como usar Enum o usando un patrón de bloqueo doblemente verificado o usando una clase estática anidada.
7) ¿Cuándo usar la variable volátil en Java? (responder)
pista: cuando necesita indicar a la JVM que una variable puede ser modificada por varios subprocesos y dar una pista a la JVM que no almacena en caché su valor.
8) ¿Cuándo usar una variable transitoria en Java? (responder)
pista: cuando desee hacer una variable no serializable en una clase, que implementa la interfaz serializable. En otras palabras, puede usarlo para una variable cuyo valor no desea guardar. Consulte The Complete Java MasterClass para obtener información sobre las variables transitorias en Java.
9) ¿Diferencia entre la variable transitoria y volátil en Java? (responder)
pista: totalmente diferente, uno se usa en el contexto de serialización mientras que el otro se usa en concurrencia.
10) ¿Diferencia entre serializable y externalizable en Java? (responder)
pista: Externalizable le da más control sobre el proceso de serialización.
11) ¿Podemos anular el método privado en Java? (responder)
pista: No, porque no es visible en la subclase, un requisito principal para anular un método en Java.
12) ¿Diferencia entre Hashtable
y HashMap
en Java? (responder)
pista: varios pero el más importante es Hashtable
, que está sincronizado, mientras HashMap
que no. También es heredado y lento en comparación con HashMap
.
13) ¿Diferencia entre List
y Set
en Java? (responder)
pista: List
está ordenado y permite duplicar. Set
no está ordenado y no permite elementos duplicados.
14) Diferencia entre ArrayList
y Vector
en Java (respuesta)
pista: muchos, pero lo más importante es que ArrayList
no está sincronizado y es rápido mientras que Vector
está sincronizado y es lento. También es de clase heredada Hashtable
.
15) ¿Diferencia entre Hashtable
y ConcurrentHashMap
en Java? (responder)
pista: más escalable. Consulte Java Fundamentals: Collections by Richard Warburton para obtener más información.
16) ¿Cómo se ConcurrentHashMap
logra la escalabilidad? (responder)
pista: dividiendo el mapa en segmentos y bloqueando solo durante la operación de escritura.
17) ¿Cuáles son los dos métodos que anulará para Object
que se use como Key
en HashMap
? (responder)
pista: igual y código hash
18) ¿Diferencia entre esperar y dormir en Java? (responder)
pista: el wait()
método libera el bloqueo o el monitor, mientras que el modo de suspensión no lo hace.
19) ¿Diferencia entre notify
y notifyAll
en Java? (responder)
pista: notify
notifica que un subproceso aleatorio está esperando ese bloqueo mientras notifyAll
informa a todos los subprocesos que esperan un monitor. Si está seguro de que solo hay un hilo esperando, utilice notify
, o notifyAll
es mejor. Ver el minicurso de Threading Essentialspor el campeón de Java Heinz Kabutz para obtener más información sobre los conceptos básicos de subprocesos.
20) ¿Por qué anula el código hash, junto con equals()
Java? (responder)
sugerencia: para cumplir con los contratos de igualdad y código hash, que es necesario si planea almacenar su objeto en clases de colección, por ejemplo, HashMap
o ArrayList
.
21) ¿Cuál es el factor de carga de los HashMap
medios? (responder)
Sugerencia: el umbral que activa el cambio de tamaño HashMap
es generalmente 0,75, lo que significa que el HashMap
tamaño se cambia si está lleno al 75 por ciento.
22) ¿Diferencia entre ArrayList
y LinkedList
en Java? (responder)
pista: al igual que una matriz y una lista vinculada, una permite la búsqueda aleatoria mientras que la otra no. La inserción y eliminación es fácil en la lista vinculada, pero una búsqueda es fácil en una matriz. Consulte Java Fundamentals: Collections , el curso de Richard Warburton sobre Pluralsight, para obtener más información sobre la estructura de datos esencial de la colección en Java.
23) ¿Diferencia entre CountDownLatch
y CyclicBarrier
en Java? (responder)
pista: puede reutilizar CyclicBarrier
después de que se rompa la barrera, pero no puede reutilizar CountDownLatch
después de que el recuento llegue a cero.
24) ¿Cuándo usas Runnable
vs Thread
en Java? (responder)
pista: siempre
25) ¿Cuál es el significado de que Enum sea de tipo seguro en Java? (responder)
pista: Significa que no puede asignar una instancia de tipo Enum diferente a una variable Enum. por ejemplo, si tiene una variable como DayOfWeek
día, no puede asignarle un valor de DayOfMonth
enum.
26) ¿Cómo funciona el Autoboxing de Integer en Java? (responder)
pista: utilizando el valueOf()
método en Java.
27) ¿Diferencia entre PATH
y Classpath
en Java? (responder)
pista: PATH
lo utiliza el sistema operativo mientras que Classpath
JVM lo utiliza para localizar archivos binarios de Java, por ejemplo, archivos JAR o archivos de clase. Ver Java Fundamentos: la plataforma central para aprender más sobre PATH
, Classpath
y otra variable de entorno Java.

28) ¿Diferencia entre la sobrecarga de métodos y la anulación en Java? (responder)
pista: la anulación ocurre en la subclase mientras que la sobrecarga ocurre en la misma clase. Además, la anulación es una actividad en tiempo de ejecución, mientras que la sobrecarga se resuelve en tiempo de compilación.
29) ¿Cómo se evita que una clase sea subclasificada en Java? (responder)
pista: solo haz que su constructor sea privado
30) ¿Cómo restringe su clase para que no sea utilizada por su cliente? (responder)
pista: hacer que el constructor sea privado o lanzar una excepción del constructor
31) ¿Diferencia entre StringBuilder
y StringBuffer
en Java? (responder)
pista: StringBuilder
no está sincronizado mientras StringBuffer
está sincronizado.
32) ¿Diferencia entre polimorfismo y herencia en Java? (responder)
pista: la herencia permite la reutilización del código y construye la relación entre clases, que es requerida por el polimorfismo, que proporciona un comportamiento dinámico. Consulte Conceptos básicos de Java: diseño orientado a objetospara obtener más información sobre las funciones de programación orientada a objetos.
33) ¿Podemos anular el método estático en Java? (responder)
pista: No, porque la anulación se resuelve en tiempo de ejecución mientras que la llamada al método estático se resuelve en tiempo de compilación.
34) ¿Podemos acceder al método privado en Java? (responder)
pista: sí, en la misma clase pero no fuera de la clase
35) ¿Diferencia entre interfaz y clase abstracta en Java? (responder)
pista: desde Java 8, la diferencia es borrosa. Sin embargo, una clase Java aún puede implementar múltiples interfaces pero solo puede extender una clase.
36) ¿Diferencia entre el analizador DOM y SAX en Java? (responder)
pista: DOM carga el archivo XML completo en la memoria, mientras que SAX no lo hace. Es un analizador basado en eventos y se puede usar para analizar un archivo grande, pero DOM es rápido y debería preferirse para archivos pequeños.
37) ¿Diferencia entre la palabra clave throw y throws en Java? (responder)
pista: throws declara qué excepción puede lanzar un método en caso de error, pero la palabra clave throw realmente arroja una excepción. Consulte Conceptos básicos de Java: manejo de excepciones para obtener más información sobre el manejo de excepciones en Java.

38) ¿Diferencia entre iteradores a prueba de fallas y rápidos en Java? (responder)
pista: a prueba de fallas no se lanza ConcurrentModificationException
mientras lo fail-fast
hace siempre que detectan un cambio externo en la colección subyacente mientras la iteran.
39) ¿Diferencia entre iterador y enumeración en Java? (responder)
pista: Iterator también le da la capacidad de eliminar un elemento mientras se itera, mientras que Enumeration no lo permite.
40) ¿Qué hay IdentityHashMap
en Java? (responder)
pista: A Map
, que utiliza el ==
operador de igualdad para comprobar la igualdad en lugar del equals()
método.
41) ¿Qué es el String
pool en Java? (responder)
pista: un grupo de String
literales. Recuerde que se movió al montón desde el espacio de generación permanente en JDK 7.
42) ¿Puede una Serializable
clase contener un campo no serializable en Java? (responder)
pista: Sí, pero debe convertirlo en estático o transitorio.
43) ¿Diferencia entre esto y super en Java? (responder)
pista: esto se refiere a la instancia actual mientras que super se refiere a una instancia de la superclase.
44) ¿Diferencia entre Comparator
y Comparable
en Java? (responder)
pista: Comparator
define el orden personalizado mientras Comparable
define el orden natural de los objetos, por ejemplo, el orden alfabético para String
. Consulte The Complete Java MasterClass para obtener más información sobre la clasificación en Java.

45) ¿Diferencia entre java.util.Date
y java.sql.Date
en Java? (responder)
pista: el primero contiene la fecha y la hora, mientras que el posterior solo contiene la parte de la fecha.
46) ¿Por qué el método de espera y notificación se declara en Object
clase en Java? (responder)
pista: porque requieren un bloqueo que solo está disponible para un objeto.
47) ¿Por qué Java no admite herencias múltiples? (responder)
pista: no es compatible debido a una mala experiencia con C ++, pero con Java 8, en cierto sentido sí lo es; ahora, solo las múltiples herencias de Type
Java no son compatibles.
48) ¿Diferencia entre excepción marcada y no marcada en Java? (responder)
pista: en caso de que esté marcado, debe manejar la excepción usando el bloque catch, mientras que en caso de que no esté marcado, depende de usted; compilar no te molestará.
49) ¿Diferencia entre error y excepción en Java? (responder)
pista: estoy cansado de escribir, compruebe la respuesta
50) ¿Diferencia entre condición de carrera y punto muerto en Java? (responder)
pista: ambos son errores que ocurren en una aplicación concurrente, uno ocurre debido a la programación de subprocesos mientras que otros ocurren debido a una codificación deficiente. Consulte Computación paralela y multiproceso en Java para obtener más información sobre interbloqueo, condiciones de carrera y otros problemas de subprocesos múltiples.
Notas de cierre
Gracias, llegaste al final del artículo ... ¡Buena suerte con tu entrevista de programación! Ciertamente no va a ser fácil, pero al seguir esta hoja de ruta y esta guía, estará un paso más cerca de convertirse en un ingeniero de DevOps.
Si te gusta este artículo, compártelo con tus amigos y colegas, ¡y no olvides seguir a javinpaul en Twitter!
Recursos adicionales
- Guía de entrevistas de Java: más de 200 preguntas y respuestas de entrevistas
- Guía de entrevistas de Spring Framework: más de 200 preguntas y respuestas
- Preparación para una entrevista de trabajo por John Sonmez
- Entrevista de programación Java expuesta por Markham
- Rompiendo la entrevista de codificación - 189 preguntas y respuestas
- Estructura de datos y análisis de algoritmos para entrevistas de trabajo
- Más de 130 preguntas de la entrevista de Java de los últimos 5 años
PSS: no he proporcionado la respuesta a las preguntas de la entrevista compartidas en la imagen "¿Cuántos objetos String se crean en el código?" ¿Puedes adivinar y explicar?