Cinco años de programadores de CRUD, todo el proceso de conseguir 360 de la subcontratación;

Escribir al frente


Hoy estoy compartiendo un resumen de la experiencia de entrevista de un ingeniero de Java con 5 años de experiencia laboral en Imperial Capital. Veré qué preguntas les gusta hacer a estas empresas de Internet. Espero que sea de importancia educativa para la entrevista de todos.

También tengo 5 años de experiencia en el desarrollo de Java. Comencé mi viaje de experiencia de entrevistas a principios de abril. Aproximadamente 20 días después, tuve entrevistas con las principales empresas de Internet, grandes empresas de primer y segundo nivel o nuevas empresas en financiación, y obtuve algunas ofertas. Incluido Qihoo 360, etc.

En primer lugar, los diferentes entrevistadores deben tener diferentes estilos de entrevista. Aquí hay un resumen de la mayoría de los problemas en el proceso de desarrollo de Java durante las entrevistas en estos días. La clasificación completa incluye base Java, framework, multihilo, comunicación de red, bases de datos y patrones de diseño, algoritmos y otros módulos.

Las habilidades que debe tener un programador Java con 3 años de experiencia laboral, este puede ser el contenido que les interesa a los programadores Java. Quiero explicar aquí que el contenido que se enumera a continuación no es algo que deba saber, pero si domina más, la evaluación final y el salario que puede obtener definitivamente serán más altos.

Uno, conceptos básicos de Java

  1. Por qué la clase String es definitiva.
  2. Código fuente de HashMap, principio de implementación y estructura subyacente.
  3. En reflexión, la diferencia entre Class.forName y classloader
  4. La diferencia y la conexión entre la sesión y la cookie, el ciclo de vida de la sesión y la gestión de la sesión cuando se implementan varios servicios.
  5. Cuáles son las colas en Java y cuáles son las diferencias.
  6. Modelo de memoria de Java y algoritmo GC
  7. La eficiencia operativa de las dos estructuras de la matriz Java y la lista vinculada, bajo qué condiciones (comenzando desde el principio, comenzando desde el final, comenzando desde el medio), qué operaciones (insertar, buscar, eliminar) son eficientes
  8. Investigación y posicionamiento de fugas de memoria Java: el uso de jmap, jstack, etc.

Dos, multihilo

Esto también es imprescindible. Debido a tres años de experiencia laboral, básicamente no le preguntaré cómo implementar múltiples subprocesos. Preguntaré más sobre la diferencia y la conexión entre Thread y Runnable, qué sucede cuando un subproceso se inicia varias veces y en qué estado se encuentra el subproceso. tiene. Por supuesto, esto es solo lo más básico. Inesperadamente, la misma pregunta se hizo casi al mismo tiempo en varias entrevistas. Los métodos de interrogación no fueron los mismos. En resumen, este es el significado:

Si hay cuatro subprocesos Thread1, Thread2, Thread3 y Thread4 para contar los tamaños de los cuatro discos C, D, E y F respectivamente, y todos los subprocesos se cuentan y se entregan al subproceso Thread5 para un resumen, ¿cómo debería hacerlo? ¿ser logrado?

¿Los cibernautas inteligentes tienen una respuesta a esta pregunta? No es difícil, hay clases listas para usar disponibles en java.util.concurrent.

Además, el grupo de subprocesos también es una pregunta frecuente ¿Cuántos grupos de subprocesos se utilizan comúnmente? ¿Cuáles son las diferencias y conexiones entre estos tipos de grupos de subprocesos? ¿Cuál es el principio de implementación del grupo de subprocesos? Los prácticos le darán algunos escenarios específicos y le permitirán responder qué grupo de subprocesos debe usarse para este escenario.

Finalmente, aunque no hay muchas preguntas en esta entrevista, la sincronización y el bloqueo de múltiples hilos también son los puntos clave.

La diferencia entre sincronizado y ReentrantLock, el método normal de bloqueo sincronizado y el método estático de bloqueo, el principio de interbloqueo y el método de resolución de problemas, etc. Con respecto al multiproceso, he resumido las preguntas de la entrevista de multiproceso y programación concurrente en algunos artículos anteriores.

 

Los amigos que necesiten los documentos y los materiales de la entrevista en el artículo pueden darle Me gusta a este artículo y agregar el asistente vx: bjmsb10 para obtenerlo gratis;

 

三 、 Yo.

IO se divide en File IO y Socket IO. File IO básicamente no se solicita y no hay nada que preguntar. Está bien usarlo normalmente, y recuerde que File IO está bloqueando todo IO.

Socket IO es una pieza más importante. Lo que necesitamos entender es la diferencia entre bloqueo / no bloqueo, síncrono / asíncrono, y entender los cuatro modelos de IO de IO con bloqueo, IO sin bloqueo, IO multiplexado y IO asíncrono. ¿Cómo se relaciona Socket IO con estos cuatro modelos?

Esto es más básico. Si profundiza, preguntará sobre el principio de NIO, a qué modelo de IO pertenece NIO, los tres componentes principales de NIO, etc. Esto es un poco difícil. En ese momento, también estudié NIO por mucho tiempo. Solo para mencionar, NIO no es estrictamente IO sin bloqueo, sino que debe ser IO multiplexado. Preste atención a este detalle al responder a la entrevista. Hablar de NIO bloqueará el método de selección del selector aumentará el favor del entrevistador hacia usted.

Si ha utilizado Netty, puede preguntar acerca de Netty. Después de todo, este marco es básicamente el mejor marco NIO (Mina es realmente bueno, pero en general todavía no es tan bueno como Netty), y la mayoría de las empresas de Internet también usan Netty .

Cuatro, código fuente JDK

Si desea obtener un salario alto, debe leer el código fuente de JDK. El contenido anterior también puede estar relacionado con escenarios específicos El código fuente del JDK es para ver si normalmente te gusta profundizar en él. En el proceso, me hicieron muchas preguntas sobre el código fuente de JDK. Una de las más complicadas fue cómo se implementa el método hashCode () de String. Afortunadamente, suelo leer mucho código fuente de String y lo respondí aproximadamente. El código fuente de JDK en realidad no es nada que resumir. Es puramente personal y resume el código fuente más importante:

  1. Código fuente de clases de implementación List, Map, Set
  2. Código fuente de ReentrantLock, AQS
  3. El principio de realización de AtomicInteger, principalmente para explicar el mecanismo CAS y cómo se implementa AtomicInteger utilizando el mecanismo CAS
  4. El principio de realización del grupo de subprocesos
  5. Los métodos de la clase Object y el rol de cada método

Estos son en realidad bastante exigentes. El año pasado, básicamente estudié el código fuente de clases importantes en el JDK. Realmente tomó tiempo y esfuerzo. Por supuesto, vale la pena mirar hacia atrás, no solo para la entrevista.

Cinco, marco

  1. Qué paquetes jar deben ser referenciados en el marco de primavera y el propósito de estos paquetes jar
  2. Principio de srpingMVC
  3. El significado de las anotaciones springMVC
  4. La conexión y la diferencia entre beanFactory y ApplicationContext en primavera
  5. Varias formas de inyección de resorte.
  6. ¿Cómo se da cuenta Spring de la gestión de las cosas?
  7. Principios de springIOC y AOP
  8. La forma de inyección cíclica en primavera.

 

 

Seis, la base de datos

La base de datos también preguntará al respecto con toda probabilidad. No se discutirán algunos conceptos básicos como la diferencia entre union y union all, left join, varios índices y sus diferencias. Lo más importante es la optimización del rendimiento de la base de datos. Si no sabe nada sobre la optimización del rendimiento de la base de datos, entonces si Si tiene tiempo, le sugiero que dedique uno o dos días antes de la entrevista a preparar el contenido de los conceptos básicos de SQL y la optimización de SQL.

Pero no se preocupe por la base de datos. Una empresa a menudo tiene muchos departamentos. Si no está familiarizado con la base de datos y la tecnología básica es muy buena, Jiucheng lo querrá. Se estima que lo ubicarán en un departamento que sí no requiere un uso muy elevado de la base de datos.

 

 

Siete, estructura de datos y análisis de algoritmos

La estructura de datos y el análisis de algoritmos son mejores que nada para un programador, y definitivamente pueden ser útiles en el trabajo. Las matrices y las listas vinculadas son la base. Las pilas y las colas son un poco más profundas pero no difíciles. Los árboles son muy importantes. Los árboles más importantes son los árboles AVL y los árboles rojo-negro. No es necesario que conozca su implementación específica, pero sí Debe saber qué es un árbol de búsqueda binario ¿Qué es un árbol equilibrado, la diferencia entre el árbol AVL y el árbol rojo-negro? Recuerdo una entrevista, un entrevistador me habló del índice de la base de datos, me preguntó:

¿Sabes qué estructura de datos se utiliza para implementar el índice?

Responda la tabla hash utilizada, la respuesta es incorrecta. Preguntó de nuevo, ¿sabes por qué quieres usar árboles? Respuesta: Debido a que la tabla Hash puede tener más conflictos, frente a decenas de millones o incluso cientos de millones de datos, aumentará enormemente la complejidad del tiempo de búsqueda. El árbol es relativamente estable, y básicamente está garantizado que los datos que desea se pueden encontrar 20 o 30 veces como máximo. La otra parte dijo que no era del todo correcto. Al final, hablamos sobre este tema, y ​​yo también Entendido por qué se utilizó el árbol.

Ocho, JVM

Inesperadamente, la máquina virtual Java debería ser un contenido muy importante, por lo que la probabilidad de que te pregunten en estas empresas es casi nula. El año pasado pasé mucho tiempo estudiando la máquina virtual Java. He leído más de cinco veces "Comprensión profunda de la máquina virtual Java: características avanzadas y mejores prácticas de JVM" por el Sr. Zhou Zhiming.

Más cerca de casa, aunque no pregunté por la máquina virtual Java, creo que es necesario estudiarla, así que simplemente haré un esquema y hablaré sobre el contenido más importante en la máquina virtual Java:

  1. Diseño de memoria de la máquina virtual Java
  2. Algoritmo GC y varios recolectores de basura
  3. Mecanismo de carga de clases, que es el modelo de delegación principal
  4. Modelo de memoria Java
  5. sucede antes de la regla
  6. reglas de uso de palabras clave volátiles

Tal vez la entrevista sea inútil, pero en el camino de convertirse en una gran vaca, es imprescindible. Esta es la entrevista con varias empresas y finalmente recopilé estas preguntas de la entrevista. La entrevista determina tu salario. Debes tratarlo bien. Estas preguntas pueden no Preguntaré, pero los programadores no son tan hábiles, y finalmente recibí una oferta de Baidu, el salario no está mal, compartí estas preguntas de la entrevista y esperaba ayudar a aquellos que planean cambiar de trabajo ~~

 

Los amigos que necesiten los documentos y los materiales de la entrevista en el artículo pueden darle Me gusta a este artículo y agregar el asistente vx: bjmsb10 para obtenerlo gratis;

 

Aprende y anima

Al mismo tiempo, los tres dorados y los cuatro plateados han pasado. En lo que respecta al modo de entrevista doméstica actual, es muy importante prepararse activamente para la entrevista antes de la entrevista. Será muy importante revisar el Java completo sistema de conocimiento Usted puede ser muy responsable de decir si la revisión es adecuada, afectará directamente su tasa de éxito de entrada. Sin embargo, muchos amigos sufren por no tener la información adecuada para revisar todo el sistema de conocimiento de Java, o algunos amigos pueden no saber por dónde empezar. Obtuve accidentalmente un material recopilado, ya sea de todo el sistema de conocimiento de Java o desde la perspectiva de la entrevista, es un material altamente técnico (versión PDF).

Cómo obtener información gratuita:

Los amigos que necesiten los documentos y los materiales de la entrevista en el artículo pueden darle Me gusta a este artículo y agregar el asistente vx: bjmsb10 para obtenerlo gratis;

 

 

Se muestran más temas de arquitectura y materiales de video de la siguiente manera:

 

 

 

Los amigos que necesiten los documentos y los materiales de la entrevista en el artículo pueden darle Me gusta a este artículo y agregar el asistente vx: bjmsb10 para obtenerlo gratis;

Supongo que te gusta

Origin blog.csdn.net/Java0258/article/details/112369254
Recomendado
Clasificación