Para ser honesto, el resumen de la entrevista de un hombre de 8 años de experiencia en Java, ¿tiene miedo de que no reciba una oferta?

Situación personal

Coordinate Magic City, 15 años de licenciatura egresada de una general, trabajó en una empresa de telecomunicaciones tradicional después de graduarse y trabajó en Meituan Dianping después de 17 años.

Situación de la entrevista

En comparación con los 17 años, gracias a los antecedentes de Meituan, el nivel de currículum de este año ha ido bastante bien. Tengo que suspirar que los antecedentes de Dachang son muy buenos.

En consonancia con el motivo de pedir la licencia lo menos posible, hay menos empresas entrevistando, solo tres empresas: Alibaba, NetEase y Pinduoduo.

Las tres empresas han pasado por el proceso de entrevistas y finalmente recibieron ofertas de Ali y Pinduoduo. Estoy bastante satisfecho.

En cuanto a la razón por la que NetEase cuelga, la razón específica no está muy clara. La entrevista funcionó bien. Cuando el BOSS me conoció, estaba bastante satisfecho conmigo, pero al final no recibí una oferta.

Si tienes dudas sobre el proceso de entrevistas de estas tres empresas, puedes dejar un mensaje en la cuenta oficial, y te responderé lo antes posible.

¿Qué habilidades deben poseer 4 años de experiencia?

En primer lugar, hablemos brevemente sobre las habilidades que creo que un buen programador de Java debería poseer durante aproximadamente 4 años de experiencia. De acuerdo con las dos partes de "habilidades profesionales" y "proyecto", incluidas, entre otras, las siguientes.

Ahorro de energía profesional

  • Fundamento: principios, código fuente y escenarios de uso de las clases JDK de uso común.
  • Patrones de diseño: varios principios comunes, escenarios de uso, singletons, agentes dinámicos, plantillas, cadenas de responsabilidad, etc.
  • Estructura de datos: matriz, lista enlazada, pila, cola, árbol.
  • Red: TCP, HTTP, HTTPS, algoritmo de equilibrio de carga.
  • Marco: principio de Spring IoC, principio y uso de Spring AOP, puntos de extensión de Spring comúnmente utilizados, proceso central de MyBatis.
  • Middleware: los principios básicos y las mejores prácticas del middleware de uso común, con un aprendizaje en profundidad de 1 o 2 de ellos, Redis, Kafka (RocketMQ, RabbitMQ), Dubbo, Zookeeper.
  • Base de datos (MySQL): principio de índice, nivel de aislamiento, mecanismo de bloqueo, subbase de datos y subtabla, posicionamiento y optimización de SQL lento, resolución de problemas en línea.
  • Netty: principio NIO, componentes centrales, multiplexación de E / S (epoll), copia cero.
  • JVM: área de datos en tiempo de ejecución, algoritmo de recolección de basura, recolector de basura (CMS, G1), parámetros de configuración comunes, localización y resolución de problemas en línea.
  • Garantía de estabilidad: aislamiento, limitación de corriente, fusión, degradación, etc.
  • Linux: use comandos básicos, localice y solucione problemas rápidamente.
  • Teoría distribuida: CAP, BASE, 2PC, 3PC, TCC.

Aspecto del proyecto

  • Capaz de completar de forma independiente el análisis de requisitos, el diseño del esquema y la implementación final de un módulo complejo.
  • Puede seguir pensando, buscando mejores diseños y soluciones, y optimizar activamente SQL lento y servicios lentos.
  • Tener la capacidad de solucionar problemas, localizar y reparar problemas en línea a tiempo, como: bloqueo de la base de datos, tiempo de inactividad del servidor, GC completa del servidor frecuente, etc.
  • Tener la capacidad de abordar problemas difíciles, poder resolver continuamente los desafíos encontrados por el proyecto y brindar orientación técnica a los ingenieros junior.
  • Inicialmente tiene la capacidad de liderar un equipo (alrededor de 1-3 personas), puede asignar requisitos de manera razonable y hacer un buen trabajo de control de progreso, evaluación de riesgos y revisión de código.

Estrictamente hablando, es un poco difícil hacer todo lo anterior por completo, y yo no lo tengo, pero podemos considerarlo como una meta y seguir trabajando duro.

Formas comunes de entrevistas

Las entrevistas de Dachang suelen tener la forma de una "pistola en serie", por ejemplo:

Entrevistador: ¿Qué mapas se han utilizado?

我 : LinkedHashMap 、 ConcurrentHashMap 、 HashMap 、 TreeMap

Entrevistador: La diferencia entre estos cuatro tipos de mapas

Yo: ConcurrentHashMap es seguro para subprocesos, LinkedHashMap puede registrar el orden de inserción y el orden de acceso, TreeMap puede personalizar la clasificación, excepto para estos escenarios, otros escenarios pueden usar básicamente HashMap

Entrevistador: ¿Cómo garantiza ConcurrentHashMap la seguridad de los subprocesos?

Yo: el bloqueo segmentado se pasó antes de JDK 1.8 y CAS + sincronizado después de JDK 1.8

Entrevistador: ¿Cuál es la diferencia entre los bloqueos de ConcurrentHashMap antes y después de JDK 1.8?

Yo: antes de que JDK 1.8 bloquee la segmentación, después de que JDK 1.8 bloquee un solo nodo, la granularidad del bloqueo se reduce y la simultaneidad aumenta.

Entrevistador: #% ¥% …… #% ¥

Yo: Miau miau ~

El método de cuestionamiento de este modelo es en realidad comprender si la comprensión del candidato de un punto de conocimiento es solo superficial, o si realmente se ha estudiado en profundidad.

Contenido de la entrevista

Aquí hay algunos contenidos comunes de la entrevista. Las preguntas de la entrevista pueden no ser lo que encontré realmente. Pueden ser recopiladas de las preguntas de la entrevista de otras personas, o pueden ser puntos de conocimiento que creo que son importantes, solo como referencia.

1. Proyecto

El proyecto es muy importante para un desarrollo con 3-5 años de experiencia, y el entrevistador también lo valora mucho. El desarrollo de esta experiencia es básicamente la principal fuerza de codificación de las grandes empresas, por lo que a la hora de entrevistar candidatos de esta edad, el proyecto suele ser una pieza muy importante. El entrevistador generalmente le pide que se presente el proyecto más involucrado (o más poderoso) y luego haga preguntas al respecto. Los más comunes son los siguientes:

  • Presenta tus proyectos más involucrados
  • Dibujar el diagrama de arquitectura del proyecto.
  • Si el proceso principal está a la mitad y el servidor falla, ¿qué sucederá?
  • Qué desafíos o problemas se han encontrado en el proyecto y cómo resolverlos
  • Cómo garantizar la estabilidad y disponibilidad del proyecto
  • Cómo diseñar la seguridad de los datos
  • La selección técnica del proyecto, por qué elegir estos
  • ...

2. Preguntas sobre escenarios

Cuantos más entrevistadores hay en la parte de atrás, más les gusta hacer preguntas sobre la escena, que ponen a prueba la capacidad habitual de acumulación y resolución de problemas de los candidatos. Este enlace es fácil de matar a un grupo de personas, especialmente a los estudiantes que se ponen nerviosos fácilmente, y es fácil perder la cabeza. El núcleo de la pregunta del escenario es, en general, abordar el problema del gran volumen de datos y resolver el problema del rendimiento.

Las preguntas de escenario son de naturaleza relativamente abierta y no hay una respuesta estándar. Siempre que su propia solución pueda resolver el problema, puede "justificarse".

En esta sesión, el entrevistador puede hacer preguntas sobre escenas reales en línea, que yo mismo he encontrado.

3. Habilidades profesionales

colocar

  • Qué mapas se utilizan a menudo
  • La diferencia entre este tipo de mapas
  • ¿Cómo garantiza CocurrentHashMap la seguridad de los subprocesos?
  • ¿Cuál es la diferencia entre los bloqueos de CocurrentHashMap antes y después de JDK 1.8?
  • Hablar sobre el principio de HashMap
  • Cuando se pone HashMap, si el nuevo nodo de lista enlazada se coloca al principio o al final
  • El proceso de expansión de HashMap
  • ¿Cuál es el cambio de HashMap en JDK 1.8?
  • Qué ha cambiado en CocurrentHashMap en JDK 1.8
  • Principio de TreeMap
  • Map, List, Set, respectivamente, hablan sobre clases seguras para subprocesos y clases no seguras para subprocesos que conoces

Multihilo, bloqueo

  • Qué grupo de subprocesos se utiliza
  • Cómo configurar los parámetros del grupo de subprocesos
  • El rol de cada parámetro del grupo de subprocesos
  • A qué prestar atención en la configuración de parámetros del grupo de subprocesos
  • Flujo de trabajo del grupo de subprocesos
  • ¿Qué saben las clases de concurrencia en el JDK?
  • El principio subyacente de AQS
  • Introducir bloqueo pesimista y bloqueo optimista
  • Qué cerraduras se han utilizado
  • La diferencia y los escenarios de uso de sincronizados y bloqueados
  • principio sincronizado
  • Actos sincronizados sobre la diferencia entre métodos estáticos, métodos ordinarios, esto, Lock.class
  • Por qué introducir cerraduras sesgadas, cerraduras ligeras e introducir el proceso de actualización
  • Las condiciones necesarias para el interbloqueo, cómo prevenir el interbloqueo.
  • Introducir CountDownLatch y CyclicBarrier
  • Presenta CAS, cuál es el problema
  • Presenta ThreadLocal, cuáles son los problemas

La Internet

  • ¿Cómo se cifra HTTPS?
  • El principio de hash ordinario y hash consistente
  • Desventajas del hash consistente
  • Proceso de protocolo de enlace de tres vías TCP, ¿por qué necesitamos un protocolo de enlace de tres vías?
  • ¿Por qué el estado TIME_WAIT debe pasar por 2MSL para volver al estado CLOSE?
  • Control de congestión TCP
  • ¿Cómo resuelve TCP el problema del control de flujo, el desorden y la pérdida de paquetes?
  • ¿Por qué aparece el pegado y el desembalaje y cómo solucionarlo?

Primavera 、 Mybatis

  • La diferencia entre # y $ en Mybatis
  • Cómo prevenir la inyección de SQL
  • Al usar Mybatis, cómo llamar a SQL al llamar a la interfaz DAO (Mapper)
  • Presentar el proceso de Spring IoC
  • La diferencia entre BeanFactory y FactoryBean
  • ¿Cómo se implementa el AOP de Spring?
  • ¿Cuáles son los comportamientos de propagación de transacciones de Spring? Hablemos de transacciones anidadas
  • ¿En qué circunstancias el objeto no puede ser representado?
  • ¿Cómo resuelve Spring el problema de las dependencias circulares?
  • Cómo implementar algo de lógica después de que se construya el contenedor Spring IoC
  • La diferencia entre @Resource y @Autowire
  • @Autowire cómo usar el nombre para inyectar
  • ¿Existe algún problema si se utilizan otras instancias de bean en el método especificado por el atributo init-method del bean?
  • ¿Hay algún problema si se utilizan otras instancias de bean en el método modificado por @PostConstruct?
  • En primavera, si hay dos beans con la misma identificación, ¿se informará un error? Si se informará un error, en qué etapa se informará el error.
  • En Spring, el atributo de clase del bean especifica una clase que no existe. ¿Se informará un error? Si ocurre un error, en qué etapa
  • ¿Cuáles son los puntos de extensión comunes en Spring?

MySQL

  • Estructura de datos del índice MySQL
  • Por qué usar el árbol B + y cuáles son las ventajas en comparación con otros índices
  • La diferencia entre varios índices
  • Cómo lidiar con el árbol B + durante la búsqueda de rango
  • Que se almacena en los nodos hoja de índice de MySQL
  • La implementación subyacente del índice conjunto (índice compuesto)
  • Cómo MySQL bloquea una fila de datos
  • ¿Se puede agregar un bloqueo mutex a una instrucción SELECT?
  • Varias transacciones SELECCIONAR PARA ACTUALIZAR en una fila de datos al mismo tiempo se bloquearán o serán anormales
  • Versión de MySQL y motor de ejecución
  • La diferencia entre diferentes motores de ejecución de MySQL
  • Nivel de aislamiento de transacciones de MySQL
  • Cómo se realiza la lectura repetible de MySQL
  • ¿Habrá lecturas fantasmas en MySQL?
  • Bloqueo de espacios de MySQL
  • Principio de sincronización maestro-esclavo de MySQL
  • Esquema de implementación de la subbase de datos y la subtabla
  • Esquema de identificación única distribuida
  • Cómo optimizar las consultas lentas
  • El significado de cada campo en explicar
  • ¿Cuáles son los valores comunes del campo de tipo en explicar?
  • ¿A qué campos suele prestar atención al explicar y por qué?

JVM

  • Área de datos en tiempo de ejecución
  • Qué recolector de basura usa el servidor
  • El principio de recolección de basura de CMS
  • Las características de la recolección de basura G1, por qué baja latencia
  • ¿Cuáles son los algoritmos de recolección de basura, ventajas y desventajas?
  • Qué objetos se pueden utilizar como GC Roots
  • ¿Qué cargadores de clases hay?
  • Modelo de delegación de los padres, qué escenarios van a romper el modelo de delegación de los padres
  • Cómo solucionar problemas de la aparición frecuente de GC completa en el servidor en línea
  • Qué comandos se usan comúnmente para localizar problemas
  • Presentar el proceso de ajuste de JVM

Kafka

  • Por que usar Kafka
  • Presentar los distintos componentes de Kafka
  • Cómo asegurarse de que los datos escritos en Kafka no se pierdan
  • Cómo asegurarse de que los datos consumidos de Kafka no se pierdan
  • ¿Por qué Kafka está tan alto?
  • ¿Qué método se utiliza para lograr la tecnología de copia cero?
  • Existe una tecnología similar de copia cero en Java, ¿qué método es?
  • ¿Cómo garantiza Kafka el consumo secuencial de mensajes?
  • Cómo evitar el consumo repetido en Kafka
  • ¿Qué es HighWatermark y LEO?
  • ¿Qué es ISR y por qué necesito introducir ISR?

Redis

  • Versión de Redis utilizada en el proyecto
  • Escenarios de uso de Redis en el proyecto
  • ¿Cómo garantiza Redis la alta disponibilidad?
  • Proceso electoral de Redis
  • La diferencia entre Redis y Memcache
  • Modo de clúster de Redis
  • El clúster de Redis necesita aumentar los fragmentos, cómo garantizar la migración de ranuras sin pérdidas
  • Implementación del bloqueo distribuido de Redis
  • La estrategia de Redis para eliminar claves caducadas
  • Estrategia de eliminación de memoria de Redis
  • Estructura subyacente del objeto Hash de Redis
  • El proceso de expansión de objetos Hash en Redis
  • ¿Habrá algún problema con el proceso de expansión del objeto Hash de Redis cuando la cantidad de datos sea grande?
  • ¿Cuáles son los mecanismos de persistencia de Redis?
  • El principio de realización, ventajas y desventajas de RDB y AOF
  • Proceso de reescritura de AOF
  • Principios del modo centinela
  • Al usar la caché, si se debe operar la base de datos primero o la caché primero
  • ¿Por qué invalidar la caché en lugar de actualizar la caché?
  • Penetración de caché, desglose de caché, avalancha de caché
  • Varios patrones de diseño para actualizar la caché

Guardián del zoológico

  • Escenarios de uso de Zookeeper
  • ¿Cómo implementa Zookeeper los bloqueos distribuidos?
  • ¿Cómo garantiza Zookeeper la coherencia de los datos?
  • Principio del acuerdo ZAB
  • ¿Cuál de los CAP sigue Zookeeper?
  • La diferencia entre Zookeeper y Eureka
  • Elección de líder para Zookeeper
  • El papel del observador
  • El líder envió un mensaje de compromiso, pero ninguno de los seguidores recibió este mensaje y el líder colgó ¿Qué pasará después?

repartido

  • Teoría de la PAC
  • Teoría BASE
  • Principios de la transacción distribuida 2PC y TCC
  • Qué hacer si el TCC falla en la fase de cancelación
  • Algoritmo Paxos, algoritmo Raft

4. Superficie de horas

Si pasas cinco niveles y eliminas a seis generales hasta el final, y finalmente llegas al lado de recursos humanos, entonces felicitaciones, estás muy, muy cerca de la oferta. Puede comenzar a imaginar que lo ascienden y aumentan su salario, se convierten en gerente general, se convierten en CEO, se casan con Bai Fumei y se embarcan en la escena del pináculo de la vida.

La entrevista de RR.HH. es principalmente para comprender algunas cualidades generales del candidato, y las preguntas más frecuentes son las siguientes:

  • Presentar el proyecto en el que más invertí (me sorprendió en ese momento, Hr también comenzó a preguntar sobre el proyecto)
  • Razón para irse
  • Salario actual, desempeño
  • La situación de otras empresas que actualmente se entrevistan
  • ¿Suele tener el hábito de estudiar, cómo estudió, qué está estudiando ahora?
  • Plan futuro

No existen respuestas estándar a estas preguntas, pero el principio muy importante es mantener una actitud positiva y no tener emociones negativas durante todo el proceso.

Con respecto al tema salarial actual, por muchas razones, algunas personas pueden querer informar un poco más. Soy neutral en este enfoque, pero debemos entender el título. Después de todo, las grandes fábricas básicamente tienen verificaciones de antecedentes. Las grandes empresas generalmente tienen tolerancia cero para los problemas de integridad y pueden incluirlos en la lista negra. Estar en la lista negra significa que nunca más se involucrará con esta empresa.

Alguna experiencia

  1. Primero, elija algunas empresas pequeñas para encontrar la sensación de la entrevista. No me he visto en mucho tiempo. Necesito encontrar la sensación de la entrevista. No me conocí bien al principio y tenía mucho pánico.
  2. Es normal estar nervioso durante una entrevista, pero no lo esté demasiado. Si su cerebro está en blanco después de que el entrevistador pregunta, puede decirle al entrevistador que quiere pensar, y luego puede hablar despacio, pero sea organizado y claro. .
  3. Responder a las preguntas del entrevistador durante la entrevista es un aspecto; por otro lado, debe dejar que el entrevistador sienta algunas de sus cualidades sobresalientes en el proceso de respuesta, como el potencial, la flexibilidad, el amor por aprender y una gran capacidad de aprendizaje. Fuerte capacidad de resolución de problemas, base sólida, etc. Estas cualidades afectarán la evaluación que el entrevistador haga de usted.
  4. Debes resolver activamente los problemas encontrados en el proyecto. El proceso de resolución de los problemas puede hacer que las personas crezcan rápidamente, y los problemas resueltos pueden convertirse en los aspectos más destacados de tu entrevista, especialmente para aquellos proyectos que no tienen aspectos destacados.
  5. Al preparar el proyecto, elija algunas de las funciones más poderosas que haya realizado o resuelto los problemas más desafiantes, y debe tener una comprensión profunda de estos contenidos, y no debe "tambalearse" al presentárselos al entrevistador.
  6. Independientemente del framework o del middleware, debe haber varios estudios en profundidad, lo que significa que además de la "amplitud", también debe tener suficiente "profundidad" en algunos aspectos. La pregunta que se encuentra a menudo durante las entrevistas es: ¿Qué marco o middleware tiene el conocimiento más profundo? Entonces el entrevistador seguirá preguntando en esta dirección. Si acaba de leer muchas cosas en general, lo más probable es que se le pregunte aquí.
  7. Cada punto de función y punto de conocimiento que hable debe estar preparado para ser "desafiado", por lo que debe pensar más en cada punto de función y punto de conocimiento.
  8. Si la pregunta es un escenario real en línea, a veces el entrevistador dará sus soluciones actuales en línea. Si puede dar algunos de sus propios pensamientos y opiniones en este momento, puede dejar un buen trabajo para la impresión del entrevistador.
  9. Una forma relativamente simple y grosera de juzgar si se ha preparado: ¿puede responder aproximadamente el 90% de las preguntas de la entrevista que ve, como las preguntas enumeradas en las " habilidades profesionales " de este artículo ?
  10. Si realmente quiere renunciar, o si ya renunció desnudo, no detenga la entrevista antes de recibir la oferta electrónica, incluso si la oferta oral no es estable, especialmente en este frío invierno.
  11. Piense más en su trabajo diario, ya sea escribiendo código o diseñando un esquema, y ​​piense más en mejores soluciones. Especialmente después de trabajar años más, pensar es más importante para nuestro desarrollo profesional.
  12. La preparación antes de la entrevista es muy importante, pero lo más importante es la acumulación del trabajo habitual. Muchas de las preguntas que plantean los 4 años de experiencia no pueden pasar una preparación temporal. Muchas de ellas requieren que sigas acumulando para tener un buen plan.
  13. Concéntrate en tu propio crecimiento y no te dejes influenciar fácilmente por los demás. Mientras sigas acumulando, un día podrás convertirte en el gran dios a tus ojos.
  14. Aprender es como remar contra la corriente. No dejes de aprender, especialmente cuando aún eres joven, y cuando aún eres un perro soltero, esfuérzate. En el futuro, estarás agradecido por tu arduo trabajo ahora.
  15. El programador es un trabajo muy simple, no hay necesidad de hacer campanas y silbidos, siempre que trabajes duro, generalmente puedes cosechar las recompensas.
  16. Para aquellos que no tienen una gran experiencia en fábricas y están en una industria tradicional (como yo hace 2 años), es más difícil ingresar directamente a una gran fábrica, a menos que pises la suerte de mierda como yo, pero este tipo de oportunidad. No es alto, creo que es más realista La forma es buscar un unicornio de Internet para conformarse por un período de tiempo.
  17. Hay muchos departamentos en las grandes empresas, y la contratación de cada departamento suele ser independiente. Si quieres entrar en una gran empresa, puedes invertir más. Cada departamento tiene un grado de demanda diferente. Si tienes una necesidad urgente de contratar, puede ser una muy buena oportunidad.
  18. Las entrevistas en las grandes empresas generalmente se archivan y el entrevistador puede ver sus evaluaciones de entrevistas anteriores. Si a menudo hace un viaje de ida y vuelta, definitivamente le dará una mala impresión al entrevistador. Así que esté preparado antes de ir a la entrevista y no pierda la oportunidad fácilmente.
  19. La situación del mercado de la industria de Internet en 2019 no es muy buena, y puede seguir siendo así en el futuro, especialmente para los estudiantes que no tienen experiencia en las principales fábricas, así que recuerde un principio muy importante: no no digas nada .

En respuesta a los puntos técnicos mencionados anteriormente en entrevistas con las principales empresas, he compilado especialmente un conjunto de materiales de revisión de documentos PDF de interfaz Java correspondientes, que cubren una amplia gama de contenido y son especialmente adecuados para algunos desarrolladores de Java que están a punto de entrevista o están a punto de cambiar de trabajo. Para solucionar las filtraciones, los lectores que necesitan obtener este conjunto de documentos

Si necesita obtenerlo, haga clic en triple enlace + comentario problemático, luego agregue VX (tkzl6666) para obtenerlo gratis

 

¿El resumen de la entrevista de un hombre de 4 años con experiencia en Java, que todavía tiene miedo de no recibir una oferta?

 

¿El resumen de la entrevista de un hombre de 4 años con experiencia en Java, que todavía tiene miedo de no recibir una oferta?

 

¿El resumen de la entrevista de un hombre de 4 años con experiencia en Java, que todavía tiene miedo de no recibir una oferta?

 

Los grandes que piensan que este artículo es bueno pueden ayudar a transmitirlo y compartirlo, con la esperanza de ayudar a más programadores que se están preparando para la entrevista, ¡gracias! ! !

Supongo que te gusta

Origin blog.csdn.net/JavaBUGa/article/details/115177588
Recomendado
Clasificación