[Resumen de la entrevista] Finalmente recibí la oferta de Meituan y no decepcioné estos tres meses de arduo trabajo.

Inserte la descripción de la imagen aquí

En Meituan, presenté mi currículum en Lagou. También voté una vez antes. El currículum no se eliminó. Más tarde, le pedí a la hermana mayor que me ayudara a cambiar mi currículum y volví a invertir en otro departamento para tener una oportunidad de entrevista. Al mediodía, RR.HH. llamó para hacer una cita para una entrevista a las 4:30 de la tarde y dijo que escribiría códigos en línea y me prepararía para el entorno de la red. Como resultado, las palomas fueron liberadas sin llamar a las 5:30. Después de volver a comunicarme con hr, decidí reunirme nuevamente el próximo lunes por la tarde, pero comunicarme con hr para concertar una cita parece ser inútil en Meituan.

Lado técnico de Meituan 20 minutos

A las 7 de la tarde, porque quería tener una entrevista el próximo lunes, estaba a punto de salir a jugar al bádminton cuando llegó la llamada de Beijing. El entrevistador se disculpó y dijo que la reunión se retrasó.

1. Introducción

Lo he dicho muchas veces y he terminado la introducción sin problemas.

2. Pregúntame si el algoritmo de estructura de datos es bueno.

Muy bien (de hecho, mi corazón todavía está un poco culpable, pero solo puedo coraje para llenar la grasa con muchas preguntas recientemente)

3. Busque el tercer punto de la lista enlazada individualmente, si la lista enlazada individual tiene un anillo

Utilice el puntero de velocidad para dar un paso y los otros tres pasos. Si hay un anillo, primero determine dónde está el anillo, busque el último nodo y luego use el enfoque acíclico anterior

4. Hablar sobre la estructura del proyecto.

Me concentré en MVC

5. Hable sobre patrones de diseño con los que esté familiarizado

Me concentré en singletons, métodos de fábrica, agentes

6. ¿Ha configurado el servidor?

No sé esto, nunca he oído hablar de eso, solo puedo decir honestamente que no, después de todo, no puedo hablar de eso.

De prisa, supongo que el entrevistador no ha comido después de la reunión. Dijo que me dejara esperar, tal vez otro colega se reuniría conmigo y me diría el resultado directamente. Por la voz y el tono del entrevistador, juzgué que debía ser el jefe del departamento, pedía demasiados diseños, luego me dijo que era el jefe del departamento al que iba. Jaja.

Tecnología Meituan dos lados 60 minutos, preguntas y respuestas detalladas

Después de dar la cara y prepararse para salir a jugar al bádminton, volvió la llamada de Pekín. (¡Destinado a no poder participar en las actividades del equipo este viernes!) Segunda cara: Comparada con la primera cara, la voz del entrevistador de la segunda cara suena a desarrollo técnico ¡Como era de esperar, una entrevista telefónica de una hora puramente técnica! ¡La superficie es muy completa!

1. Spring: ¿Alguna vez ha usado Spring, Spring IOC, mecanismo e implementación AOP, Spring MVC?

De hecho, no quiero que me pregunten sobre los detalles de Spring. No recuerdo el marco después de la revisión. Así que le dije al entrevistador que entendía algunos de los mecanismos más importantes en Spring. Luego utilicé un ejemplo práctico para explicar mi comprensión de la COI y la AOP. Él lo escuchó bien y lo entendió bien (rara vez se encuentra Estoy muy feliz de ser un entrevistador que puede dar su opinión durante la entrevista)

De hecho, he usado Spring MVC. Le hablé al entrevistador sobre el MVC implementado por Servlet, jsp y javabean usado en mi proyecto, así como las responsabilidades de cada módulo de MVC y cómo se conecta cada módulo. Finalmente, agregué Creo que la idea de SpringMVC es en realidad la misma que esta (tiene razón, oye, es bueno tener comentarios)

2. Subprocesos múltiples: ¿Cómo lograr la seguridad de los subprocesos, cuáles son las diferencias entre los métodos de implementación, el uso de la palabra clave volátil, la comprensión de los bloqueos reentrantes y los bloqueos reentrantes sincronizados?

Aquí hablaré principalmente sobre la palabra clave sincronizada, algunos bloqueos en paquetes concurrentes y sus respectivas ventajas, desventajas y diferencias. Hablo principalmente sobre la palabra clave volátil desde tres aspectos: visibilidad, atomicidad y prohibición del reordenamiento de instrucciones JVM. También hablé sobre el uso de la palabra clave volátil en la verificación doble del modo singleton multiproceso para prohibir la optimización del reordenamiento de instrucciones JVM. .

3. Colección: la implementación subyacente de HashMap, cómo lograr la seguridad de los subprocesos de HashMap

Hablé sobre la capa inferior de HashMap: la realización de una matriz más una lista vinculada individualmente, clases internas de nodo, el proceso de agregar, resolución de conflictos de Hash, expansión y tres vistas de colección. La implementación segura para subprocesos de HashMap habla principalmente de HashTable, ConcurrentHashMap y el método estático SynchronizedMap en Collections, que puede encapsular HashMap. Y la diferencia entre estos tres métodos, rendimiento de eficiencia.

4. Gestión de memoria JVM, algoritmo GC, recolector de basura en HotSpot, carga de clases

La memoria JVM se divide principalmente en cinco áreas, que son compartidas por subprocesos, que son compartidas por subprocesos y lo que se almacena en cada área. GC: Cómo determinar qué objetos deben ser GC, método GC, GC menor y GC completo. Algoritmo HotSpot GC y 7 tipos de recolectores de basura, principalmente hablando de recolectores CMS y G1. Carga de clases: el proceso de carga de clases, Bootstrap classloader-ExtClassloader-AppClassloader, mecanismo de delegación de clase principal.

5. La diferencia entre proceso e hilo

Respondido desde cuatro aspectos: programación, concurrencia, recursos y sobrecarga del sistema.

6. ¿Hay un estado en HTTP? Digo sin estado. Cómo resolver la falta de estado de HTTP es en realidad cómo realizar el seguimiento de la sesión. Hay cuatro métodos: reescritura de URL, campos de formulario ocultos, cookies y sesiones.

7. Java IO, NIO, ¿existe alguna implementación de IO asíncrona en Java?

Java IO implementa el bloqueo sincrónico y cómo lo logra. Tomé el método read () como ejemplo. NIO implementa el no bloqueo síncrono. Hablé en detalle sobre el sondeo del método select () en Selector para explicar cómo implementa IO multiplexado. Luego compare su eficiencia. El entrevistador puede ver que tengo una mejor comprensión de esta área y luego continuar preguntándome si he implementado IO asincrónico en Java. No creo que lo sea, pero el entrevistador dijo que sí. Déjame pensarlo. En realidad, no lo sé, así que simplemente Le conté al entrevistador sobre mi comprensión del modelo de E / S asincrónico en Unix, y luego dije que realmente no estoy seguro de si existe alguno en Java. (¡En realidad se rió! ¡Decir que lo entiendes es correcto, no importa si lo hay en Java! Jaja)

8. ¿El front-end, qué es Ajax y el principio de implementación de Ajax?

Solo uso algunos js en la interfaz. He usado el marco de jquery y me preguntó cuál es el nombre completo de Ajax. Supongo que es js y xml asincrónicos. De hecho, no entiendo el principio de implementación de Ajax. Acabo de hablar brevemente sobre él a través del objeto XMLHttpRequest para consultas asincrónicas. El motor Ajax se ejecuta en el lado del cliente, lo que reduce la carga de trabajo del servidor.

9. Déjame diseñar un grupo de subprocesos

Porque está escrito en mi currículum que entiendo mejor los subprocesos múltiples y la concurrencia. Por eso siempre hace preguntas en esta área. Este problema se debe a que he visto el código fuente de ThreadPoolExecutor antes, así que modelé la idea de diseño de esa clase y hablé en detalle sobre el grupo principal. El modelo de método de fábrica se puede usar para crear subprocesos, estado del grupo de subprocesos, cola de bloqueo, Rechace estos aspectos de la estrategia. El diseño es bastante completo.

10. Hable sobre varios patrones de diseño, dónde se usan y por qué se usan.

Modo singleton, getRuntime () en jdk; Modo de método de fábrica, ThreadPoolExcutor usa ThreadFactory; Modo de observador: Observable y Observer en el paquete java.util. Finalmente, hablé principalmente sobre los escenarios de uso del patrón del método de fábrica.

11. Optimización de Mysql y realización de índices

Hablo de dos aspectos de la optimización del diseño de bases de datos y la optimización de consultas. Implementación del árbol del índice B +, la diferencia entre la implementación del índice de clave primaria de InnoDB y MyISAM, uno está agrupado y el otro no está agrupado.

12. El nivel de aislamiento de la transacción

Cuatro niveles de aislamiento, qué excepciones pueden ocurrir, el nivel predeterminado en mysql.

13. ¿Ha utilizado alguna vez Hibernate, mybatis, git?

Esta es solo una breve charla, ¿qué están haciendo?

14 、 Linux

Dije esto de pregrado, pero no funcionó durante mucho tiempo y olvidé todos los comandos. Dijo que está bien, prueba algunos simples: cd, ls, dir (realmente simple)

15. Preguntas algorítmicas

1. Encuentre los 10 más pequeños de 100,000 números, análisis de complejidad de tiempo (montón máximo, considere memoria)
2. Encuentre la suma máxima de submatrices consecutivas de una matriz positiva y negativa, análisis de complejidad de tiempo (programación dinámica )
3. ¿Cuántos nodos hay en el i-ésimo nivel del árbol binario completo y cuántos nodos hay en el árbol binario completo de n niveles?

Finalmente es hora de que haga preguntas

1. ¿Cuál es su departamento (dijo que es el departamento principal, investigación y desarrollo de big data)?
2. Estoy muy interesado en la alta simultaneidad y el equilibrio de carga, pero generalmente no tengo este entorno en la escuela para experimentar esto, entonces ¿Cómo sugieres que puedo aprenderlo ahora? (Dijo que realmente no es fácil de aprender, solo leer algunas teorías y blogs de otras personas, y puedo aprenderlo lentamente en el futuro)
3. Lo que hace el middleware específicamente es resolver alta concurrencia ¿Es con equilibrio de carga? (Dijo que era casi cierto, y luego dijo que nuestro departamento no es un departamento de middleware, sino un departamento de big data. Dije que sí, lo sé)

Al final no hubo problema, me pidió que mantuviera el teléfono abierto.

Después de este lado, mi boca estaba seca y sospechaba que él tal vez no supiera que estaba solicitando un puesto de pasante. Hay mucho que resumir, hablemos de ello juntos en el lugar del resumen.

Tecnología Meituan tres lados 25 minutos

El entrevistador dijo que estaba en otro departamento y necesitaba una entrevista cruzada.

1. Optimización de MySql
2. Hable sobre lo que ha hecho el proyecto, arquitectura, etc.
3. Escriba el código en línea en collabedit, el título es muy simple, la pregunta original sobre la belleza de la programación, una matriz ordenada de números enteros, da como resultado dos números, Haga de su suma un valor dado. Lo hice antes y lo escribí rápidamente, y luego le di algunas ideas. Continuó preguntando qué hacer si la matriz no está ordenada, ordénela primero.
4. Dos archivos, cada archivo tiene varias URL, busque la misma URL en los dos archivos (usando HashMap)

Este lado es muy simple, solo agregue el enlace de escritura de código en línea que no se usó en la entrevista anterior. Collabedit más tarde me enteré de que algunas empresas de Internet como Facebook usarán este editor en línea para escribir código en entrevistas remotas. Está escrito en documentos de texto, sin indicaciones y no se puede compilar. Corre, como escribir en una pizarra. Es bueno practicar con las manos en momentos normales.

Meituan Technology HR alrededor de 30 minutos

El entrevistador de tres lados dijo que él era el último y dijo que esperaré a que me contactara. Inesperadamente, las horas de fideos después de media hora eran realmente técnicas.

1. Preséntese, incluso si está por todas partes, ¿se presenta? ! Pensé que eran puros fideos, así que las presentaciones fueron sobre mi carácter y mi vida, pero el resultado no fue así.
2. Pregunte al proyecto, las preguntas son particularmente detalladas, los detalles técnicos, qué problemas se encuentran, cómo resolverlos, hay alguien que tome el proyecto y cómo comunicarse con los demás.
3. Optimización de la base de datos. Si una tabla en la base de datos es particularmente grande, cómo hacer la optimización de la base de datos. He hablado de los puntos de los que he hablado muchas veces antes. Él preguntó qué hacer si una tabla es particularmente grande: las tablas grandes se dividen en tablas pequeñas, cómo lograrlo: usar tablas particionadas
4. Pregunte el tema de investigación del estudiante graduado, por qué elegí este tema, qué artículos he leído (en cuanto a preguntarme en qué revista están publicados esos artículos, en qué escuela es el autor), por qué elijo este algoritmo, cómo optimizarlo y experimentar. ¿Cómo se compara el resultado con el de otros y por qué es mejor que los algoritmos de otros? (Supongo que no entiende los términos profesionales de los que estoy hablando. Solo juzgo si lo hice)
. 5. La determinación del tiempo de pasantía realmente me presionó. El proyecto lo hizo un estudiante de pregrado. Ha sido mucho tiempo, y algunos detalles técnicos no se han resumido demasiado, por lo que solo puedo querer editarlo cuando pido detalles, jeje. El aspecto de la investigación científica está bien. He estado trabajando en este último semestre. Recuerdo claramente la implementación y mejora de algunos algoritmos y la comparación, y la respuesta es bastante fluida. Tal vez este sea realmente un aspecto técnico de recursos humanos.

Por último: Durante
los seis meses de preparación, yo mismo he estado buscando constantemente materiales para aprender y, a través de muchos canales y amigos, quiero obtener una copia de los últimos materiales de aprendizaje para la publicación de Java. Puede obtenerla mediante [ haga clic aquí, contraseña CSDN ] ~

Inserte la descripción de la imagen aquí

El objetivo es recomendar a todos. El banco de preguntas posteriores a la entrevista de Java en esta información contiene back-end de Java, escenarios de entrevistas y preguntas de entrevistas de algunas de las principales empresas. También sigo cepillando las preguntas para mejorar mi visión

Banco de preguntas de la entrevista técnica posterior a Java (más de 5000 preguntas de la entrevista)

Hay muchos módulos en este banco de preguntas: conceptos básicos de Java, contenedor, subprocesos múltiples, reflexión, copia de objeto, módulo web de Java, excepción, red, patrón de diseño, Spring / Spring MVC, Spring Boot / Spring Cloud, Hibernate, Mybatis , RabbitMQ, Kafka, Zookeeper, MySql, Redis, JVM ...

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_47345084/article/details/112271603
Recomendado
Clasificación