Revise estas 50 preguntas para descifrar su entrevista de programación Java

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 ClassLoaderen 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 ArrayListy HashSeten Java? (responder)

pista: todas las diferencias entre Listy Setson 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 Hashtabley HashMapen Java? (responder)

pista: varios pero el más importante es Hashtable, que está sincronizado, mientras HashMapque no. También es heredado y lento en comparación con HashMap.

13) ¿Diferencia entre Listy Set en Java? (responder)

pista: Listestá ordenado y permite duplicar. Setno está ordenado y no permite elementos duplicados.

14) Diferencia entre ArrayListy Vectoren Java (respuesta)

pista: muchos, pero lo más importante es que ArrayListno está sincronizado y es rápido mientras que Vectorestá sincronizado y es lento. También es de clase heredada Hashtable.

15) ¿Diferencia entre Hashtabley ConcurrentHashMapen Java? (responder)

pista: más escalable. Consulte Java Fundamentals: Collections by Richard Warburton para obtener más información.

16) ¿Cómo se ConcurrentHashMaplogra 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 Objectque se use como Keyen 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 notifyy notifyAllen Java? (responder)

pista: notifynotifica que un subproceso aleatorio está esperando ese bloqueo mientras notifyAllinforma a todos los subprocesos que esperan un monitor. Si está seguro de que solo hay un hilo esperando, utilice notify, o notifyAlles 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, HashMapo ArrayList.

21) ¿Cuál es el factor de carga de los HashMapmedios? (responder)

Sugerencia: el umbral que activa el cambio de tamaño HashMapes generalmente 0,75, lo que significa que el HashMaptamaño se cambia si está lleno al 75 por ciento.

22) ¿Diferencia entre ArrayListy LinkedListen 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 CountDownLatchy CyclicBarrieren Java? (responder)

pista: puede reutilizar CyclicBarrierdespués de que se rompa la barrera, pero no puede reutilizar CountDownLatchdespués de que el recuento llegue a cero.

24) ¿Cuándo usas Runnablevs Threaden 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 DayOfWeekdía, no puede asignarle un valor de DayOfMonthenum.

26) ¿Cómo funciona el Autoboxing de Integer en Java? (responder)

pista: utilizando el valueOf()método en Java.

27) ¿Diferencia entre PATHy Classpathen Java? (responder)

pista: PATHlo utiliza el sistema operativo mientras que ClasspathJVM 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, Classpathy 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 StringBuildery StringBufferen Java? (responder)

pista: StringBuilderno está sincronizado mientras StringBufferestá 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 ConcurrentModificationExceptionmientras lo fail-fasthace 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 IdentityHashMapen 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 Stringpool en Java? (responder)

pista: un grupo de Stringliterales. Recuerde que se movió al montón desde el espacio de generación permanente en JDK 7.

42) ¿Puede una Serializableclase 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 Comparatory Comparableen Java? (responder)

pista: Comparatordefine el orden personalizado mientras Comparabledefine 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.Datey java.sql.Dateen 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 Objectclase 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 TypeJava 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
PD: si necesita algunos recursos GRATUITOS para aprender Java, puede consultar esta lista de cursos gratuitos de Java para comenzar su preparación.

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?