Red de conocimiento informático - Conocimiento informático - Si fueras un entrevistador de Java, ¿qué preguntas harías?

Si fueras un entrevistador de Java, ¿qué preguntas harías?

1. Cuéntenos sobre su comprensión de la plataforma Java. "Java es ejecución interpretada", ¿es correcta esta afirmación? Análisis de puntos de prueba: para este tipo de preguntas generales, debe intentar demostrar que su pensamiento es profundo y sistemático, y que tiene una comprensión integral del conocimiento de Java. Debe evitar que el entrevistador piense que es una persona. que "sabe lo que está pasando pero no sabe por qué". Después de todo, comprender los componentes y mecanismos básicos es la base para muchas cosas, como el diagnóstico de problemas o el ajuste del desempeño en el trabajo diario. Creo que a ningún reclutador no le gustarán los entrevistadores a los que "les encanta aprender y pensar". Volviendo al tema, podemos hablar brevemente sobre la comprensión de la plataforma Java desde muchos aspectos, tales como: características del lenguaje Java, incluidos genéricos, Lambda y otras características del lenguaje básico, incluidas colecciones, IO/NIO, red y concurrencia; , seguridad y otras bibliotecas de clases básicas. Para las bibliotecas de clases que se utilizan ampliamente en nuestro trabajo diario, podemos resumirlas sistemáticamente antes de la entrevista, lo que nos ayudará a actuar en el acto. 2. ¿Cuáles son las diferencias entre Hashtable, HashMap y TreeMap? Análisis de puntos de prueba: la respuesta anterior es solo un resumen simple de algunas características básicas. Hay muchos problemas que se pueden ampliar en Map, que van desde varias estructuras de datos y escenarios de aplicación típicos hasta consideraciones técnicas sobre el diseño y la implementación del programa, especialmente en. Java 8. HashMap en sí ha sufrido cambios muy grandes, y estos son aspectos que se examinan a menudo. Muchos amigos me han comentado que a los entrevistadores parece gustarles examinar los detalles de diseño e implementación de HashMap, por lo que hoy agregaré la interpretación del código fuente correspondiente, enfocándome principalmente en los siguientes aspectos: comprender la estructura general relacionada con Map, especialmente los datos ordenados. estructura Algunos puntos clave. Analice los puntos de diseño e implementación de HashMap desde el código fuente, comprenda la capacidad, el factor de carga, etc., por qué se necesitan estos parámetros, cómo afectan el rendimiento del mapa y cómo hacer concesiones en la práctica. Comprender los principios relevantes de la transformación de árboles y las razones de mejora. Además del análisis de código típico, también hay algunos problemas interesantes relacionados con la concurrencia que se mencionan a menudo. Por ejemplo, HashMap puede tener problemas extraños, como bucles infinitos que ocupan la CPU y un tamaño inexacto en un entorno concurrente. Creo que este es un error de uso típico, porque HashMap indica claramente que no es una estructura de datos segura para subprocesos. Si ignora esto y simplemente lo usa en un escenario de subprocesos múltiples, inevitablemente ocurrirán problemas. Comprender las causas de este error también es una buena manera de obtener una comprensión más profunda de cómo se ejecutan los programas concurrentes. Para saber qué sucedió exactamente, puede consultar este análisis de hace mucho tiempo, que incluso proporciona un diagrama esquemático. No repetiré lo que otros han escrito. 3. ¿Qué métodos IO proporciona Java? ¿Cómo implementa NIO la multiplexación? Análisis de puntos de prueba: en la entrevista real, hay muchas áreas que se pueden expandir desde IO tradicional a NIO y NIO 2. Los puntos de inspección cubren todos los aspectos, tales como: funciones y diseño API básicos, InputStream/