¿Cómo encontrar trabajo?
El salto de trabajo definitivamente no es una palabra desconocida para la gente de TI, y casi todos la han practicado. En primer lugar, quiero enfatizar que no hay ningún daño en cambiar de trabajo, pero no hay ningún beneficio en cambiar de trabajo con frecuencia. En los primeros cuatro años de trabajo, se debe fomentar el cambio de empleo (se recomienda experimentar 2 o 3 empresas, cada empresa tiene un enfoque diferente en la tecnología y un control diferente sobre el proceso de desarrollo, por lo que, naturalmente, requiere diferentes talentos técnicos); por ejemplo, una empresa de subcontratación necesita un experto en códigos (me gusta contratar personas que hayan experimentado la subcontratación y creo que muchas personas que han trabajado en empresas de subcontratación son muy eficientes y las pequeñas empresas comerciales necesitan un programador completo (que pueda); diseñar y analizar, escribir código e implementar); las grandes empresas necesitan un programador con habilidades sólidas, personas con potencial (buen inglés, buena comprensión, base sólida en Java en este caso, si permanece en una empresa por mucho tiempo); , es probable que te estereotipen. A veces es fácil encontrar trabajo si dejas la empresa. ¡Experimentar más de dos empresas es muy beneficioso para los programadores! Además, también siento que cada vez que busco trabajo me obligo a aprender algo.
Colección de entrevistas
Recientemente, muchos amigos han ido a entrevistas a las principales empresas de Internet (Alibaba, JD.COM, Meituan, Didi) y me enviarán algunas entrevistas después de la entrevista. . pregunta. Algunos amigos pasaron fácilmente la prueba y obtuvieron la oferta, pero algunos vinieron a pedirme respuestas.
1. Entrevista con Alibaba
Primero: ¿Qué preguntó Ali durante la entrevista? :(55 minutos)
1. ¿Qué estructuras de datos se utilizan en el desarrollo de Java?
2 Hable sobre su comprensión de HashMap, la implementación básica de los principios subyacentes y cómo HashMap resuelve el problema de colisión.
¿Estas estructuras de datos son seguras para subprocesos? Si responde que HashMap es seguro para subprocesos, pregunte si hay un mapa seguro para subprocesos y luego pregunte sobre el paquete conurren.
3. ¿Está familiarizado con JVM? Hablemos brevemente sobre el proceso de carga de clases. ¿Qué operaciones se realizan en él? Estoy preguntando sobre GC y gestión de memoria. ¿Lo has configurado alguna vez en tomect?
4. Luego pregunte sobre las diferencias básicas entre el protocolo http, get y post, seguido del protocolo tcp/ip, el protocolo de enlace de tres vías y el mecanismo de deslizamiento de ventana.
5. ¿Qué bases de datos se utilizan en el desarrollo? Responde mysql, ¿cuáles son los motores de almacenamiento? Luego me preguntó sobre los escenarios de uso de los problemas de bloqueo pesimista y optimista y los principios de implementación de clústeres distribuidos.
6. Entonces pregúntame cómo funcionan springmvc y mybatis. ¿Has visto alguna vez el código fuente subyacente?
2. Entrevista financiera de JD
1. Reintento del tiempo de espera de Dubbo; configuración del tiempo de espera de Dubbo
2.
3. Cosas distribuidas y bloqueos distribuidos (no deben tener deducciones negativas)
4. Configuración de sesión distribuida
5. 50 veces tuvieron éxito y la 51 fracasó. Todas las operaciones se revertirán. Envíe las primeras 50 veces y genere una excepción la 51.ª vez. ¿Cómo configurar Spring (propagación) en la escena ab por separado?
6.¿Cuáles son los usos de Zookeeper?
7. Modelo de memoria JVM
8. Partición vertical y horizontal de la base de datos
9. Cómo paginar MyBatis y configurar la puntuación de MySQL;
p>
10, ¿estás familiarizado con IO? La diferencia entre NIO y bloqueo y no bloqueo
11. Coherencia de la sesión distribuida
12 El diseño idempotente de las interfaces distribuidas no se puede repetir.
3. Entrevista a Meituan
1. ¿Qué proyectos familiares has realizado recientemente? Dibuje el diagrama de arquitectura técnica del proyecto
2. ¿Cuál es la proporción entre la JVM antigua y la nueva?
3. La situación específica de YGC y FGC.
4. ¿Qué significan jstack, jmap y jutil respectivamente? ¿Cómo solucionar problemas relacionados con JVM en línea?
5. ¿Cuáles son los significados específicos de los cinco parámetros del método de clase de construcción del grupo de subprocesos?
6. ¿Qué debo hacer si el grupo de subprocesos de una sola máquina de repente procesa servicios? ¿Cómo manejar el procesamiento y bloqueo de solicitudes en cola?
7. ¿Cuáles son los problemas con el uso de colas de bloqueo ilimitadas?
8. ¿Cómo maneja la interfaz las solicitudes repetidas?
9. ¿Cuál es el plan de tratamiento específico?
10. ¿Cómo garantizar la atomicidad de * * * modificación de variables?
11. Diseñar una clase de implementación de interfaz para servicios externos para implementar mecanismos de equilibrio de carga y sondeo secuencial (considerando la concurrencia) en tres hosts (correspondientes a diferentes IP).
4. Entrevista Didi
1. Autopresentación, características técnicas
2.
3. ¿Cuál es la relación entre jvm, jre y jdk?
4. El principio subyacente de Dubbo, ¿qué es Zookeeper?
5. Mecanismo cincurrentMap; diagrama de árbol; palabra clave volátil
6. Búsqueda rápida en amplitud (implementación de cola)
7. ¿Avalancha e infiltración?
8.¿Se pueden copiar las claves de HashMap?
9. ¿Cuál es la diferencia entre sincronizado y bloqueado?
10. ¿Qué cuestiones se tendrán en cuenta al desarrollar un sitio web grande?
Lo resolví especialmente. Había muchas preguntas que no se podían explicar claramente en pocas palabras, así que simplemente les pedí a mis amigos que grabaran algunos videos para responder estas preguntas de la entrevista. De hecho, las respuestas a muchas preguntas son simples, pero el pensamiento y la lógica detrás de ellas no lo son. Para saber qué es, necesitas saber por qué. Si quieres aprender ingeniería Java, alto rendimiento y distribuido, alto rendimiento, fácil de entender. Los amigos que estén interesados en el ajuste del rendimiento, el análisis del código fuente de Spring, MyBatis y Netty pueden unirse a mi grupo avanzado de Java, 685167672, que contiene videos de la explicación in situ de la tecnología de Alibaba Daniel y la tecnología de Internet a gran escala de Java para compartir de forma gratuita.
La verdad es que no tenía intención de escribir este artículo, principalmente por mi mala memoria. A diferencia de algunas personas con mucha memoria, casi puedo escribir la conversación que tuve con el entrevistador después de la entrevista. Después de la entrevista, excepto por recordar algunos puntos de conocimiento mencionados, básicamente olvidé todo el contenido específico, por lo que en realidad fue muy difícil escribir este artículo.
Sin embargo, últimamente mucha gente me ha preguntado. Para evitar repetir la respuesta y ahorrar algo de energía, simplemente responderé aquí. Para ser honesto, sólo puedo pensar vagamente en estas palabras clave: concurrencia, JVM, distribuido, protocolo TCP/IP. Realmente no recuerdo los problemas específicos. E incluso si recuerdo lo que te dije, puedes recitarlo, pero creo que la posibilidad de que te hagan la misma pregunta durante la entrevista aún es muy pequeña. Incluso si tienes la suerte de que te lo pregunten y puedas recitarlo, no necesariamente tendrá un efecto positivo en tu entrevista, porque si el entrevistador te hace una pregunta más, podrías quedar expuesto. Sería mejor simplemente decir que no.