Dachang Mianjing compartió: ¿Qué preparativos ha hecho para el byte de entrada de cinco lados de Shuangfei?

prefacio

 

El siguiente es un guión de cara enviado por un lector detrás del escenario. Creo que será muy útil para todos en este momento, y lo puse especialmente en la pantalla grande:

​

还有他分享的一些资料,我都整理成合集,需要的同学可以私信我【面试】即可~

​

En primer lugar, me gustaría darles a todos un suspiro de alivio. ¡Los estudiantes que vienen a ver la entrevista son todos estudiantes que se están preparando para la entrevista! Aunque el ambiente general no es bueno este año, cuanto más sea el caso, más debes concentrarte en cultivar tu propia fuerza, ¡no estar contento con las cosas y no estar triste contigo mismo!

Soy de segunda escuela, y llevo como 5 meses preparándome para ello, así que lo puedo hacer, y lo puede hacer todo el mundo ¡Vamos! El siguiente es mi sutra y mi experiencia.

Un lado 75min

  1. presentarte

  2. Pregunte sobre la experiencia del proyecto, hable sobre "sincronización de datos"

  3. Luego hablamos del proyecto K8S

  4. ¿Existen técnicas más profundamente investigadas? (Tipo grande: kubernetes, golang, prometheus, java)

  5. ¿Qué es la arquitectura de kubernetes?

  6. Este problema es muy grande y se divide en apserver, controller, kubelet, scheduler y se habla de él.

  7. Comparación de golang y java

  8. Este problema es muy grande. En ese momento, comparé principalmente la diferencia entre vm, soporte coroutine, orientado a objetos y genérico, y mi propia comprensión de sus respectivos escenarios de uso.

  9. algoritmo gc de golang

  10. Sé que es una marca de tres colores, pero no puedo decir los detalles.

  11. Seleccione al azar 10 caracteres de un flujo infinito de caracteres

  12. No lo había visto antes y no pensé en eso. Revisé el algoritmo de muestreo del embalse, una pregunta clásica de entrevista.

  13. Cómo expandir el programador de kubernetes para que pueda manejar la programación de nodos a gran escala

  14. Aceleración de un solo nodo: en la fase de optimización, algunos nodos se seleccionan aleatoriamente para la optimización; los nodos del programador se escalan horizontalmente y el pod realiza un hashing consistente para determinar qué programador programar.

  15. ¿Qué quieres preguntarme?

Por un lado, el entrevistador preguntó principalmente sobre algunos conocimientos básicos. Dije un poco más divergente y déjame parar, así que principalmente quería examinar mis conceptos básicos. El estilo de bytes sigue siendo diferente, jaja, cuántas otras compañías tienen dijo Cuánto, el entrevistador continuará escuchando y hablando durante 20 minutos de una vez, y el byte sigue siendo el conocimiento que el entrevistador pide saber, y haga clic en él.

dos lados

  • Hablemos del proyecto

  • ¿Qué cambios se han hecho en Prometheus?

  • ¿Qué hizo el centro de configuración de desarrollo propio?

  • ¿Ha utilizado alguna característica avanzada de MySQL?

  • No entiendo muy bien aquí. Pregunté qué es una característica avanzada, y el entrevistador pasó a la siguiente pregunta.

  • ¿Cómo se diseña la tabla de datos básicos del centro de configuración?

  • ¿Por qué usar Redis en los negocios? ¿Cuáles son las ventajas de Redis?

  • Subproceso único: seguridad concurrente; alto rendimiento; rico en primitivos y estructuras de datos; ampliamente utilizado, bajo costo

  • ¿Está familiarizado con la implementación de estructuras de datos en Redis?

  • Dijo una tabla de salto zset

  • ¿Qué estructuras de datos de Redis se han utilizado y en qué escenarios?

  • ¿Qué parámetros se pueden configurar cuando Java inicializa un grupo de subprocesos y cuáles son sus funciones?

  • ¿Qué parámetros de JVM ha ajustado para su propia aplicación Java y por qué? (Esta pregunta se detiene, el tipo grande solo conoce los conceptos básicos del montón máximo y el montón mínimo, G1, registro de GC y dumper OOM)

  • ¿Hay algún parámetro al usar Jetty y por qué?

  • ¿Crees que la cola de espera de Jetty QTP está configurada para ser infinita? ¿Habrá algún problema?

  • ¿Qué comandos en Linux Bash has usado y para qué los usas?

  • Una pregunta de prueba escrita: debe responder en el enlace proporcionado, no puede buscar en Google, no puede saltar, no puede usar IDE:

El tema es este:

Inicie dos subprocesos, uno genera 1,3,5,7…99, el otro genera 2,4,6,8…100 y finalmente genera 1,2,3,4,5…100 en secuencia en STDOUT

Big guy: usa Go para implementarlo. Interviewer: No, usa el mecanismo de notificación de Java para lograr big guy:: (No me he dado cuenta de la gravedad del problema) Luego usa Java BlockingQueue. Interviewer: Di no, pide usar la espera de Java. + mecanismo de notificación para lograr

Como no he escrito espere + notifique en absoluto, solo puedo decir que no, el entrevistador dijo que está bien, puede usar ir para escribir

Finalmente, se implementó una versión con go channel, pero el código no se puede ejecutar en la página web dada, y no sé si está escrito correctamente, y luego se termina la entrevista.

Esta ronda de entrevistadores siguió el estilo unilateral. Después de hacer una pregunta, se apresuraron a pasar a la siguiente. No parecían mostrar interés ni aprobación por mi respuesta. Entonces, después de esta ronda, sintió que podría haber colgado de nuevo...

Tres lados

  • Todavía hablar sobre el proyecto primero.

  • Estoy muy interesado en el proyecto de monitoreo de alarmas, y pedí muchos detalles. Finalmente, hice una pregunta: ahora quiero que implementen un lenguaje de consulta cuya semántica no sea más débil que PromQL. ¿Pueden implementarlo? (Aunque he visto algunos códigos de Prometheus aquí, no he mirado de cerca el lexer y partes del analizador de PromQL. Bueno, como quería escribir Stream SQL declarativo en el proyecto de sincronización de datos, estudié un poco de ANTLR y usé ANTLR para escribir gramática + lógica de consulta de conector transversal AST para engañarlo).

  • ¿Cuál crees que es el proyecto más profundo (por supuesto, sincronización de datos)

  • Proyecto de sincronización de datos de chat

  • Pregunte cómo dominar Linux? (No lo he estudiado sistemáticamente, básicamente lo acumulé de mi propia operación y mantenimiento)

  • ¿Cómo dominas Golang? (Lo usé durante medio año y vi efectivo ir)

  • ¿Cómo se domina el algoritmo? (Hasta donde puede llegar la imagen)

  • Pregunte al algoritmo de ruta más corta (solo recuerde dijkstra, que describe el flujo de código)

  • ¿Cómo dominas k8s? (No he escrito el controlador y el programador yo mismo, pero estoy familiarizado con los conceptos. He leído el código fuente de estas partes de xxx)

  • ¿Cómo se implementa el ejecutivo de k8s? (Esta pregunta está en mente, y la pequeña tarea que escribí sobre PingCAP antes solo está familiarizada con esta pieza)

Esta ronda de charlas fue mucho más fluida. Al mismo tiempo, descubrí que a los entrevistadores de Ant parece gustarles dejar que te evalúes a ti mismo: "¿Cómo crees que has dominado xxx?" (Solo hay cinco entrevistadores, la muestra no es lo suficientemente grande para contar), este tipo de Las preguntas en realidad me hacen morir de pánico, tengo miedo de no poder responder si me golpeo la cabeza, la entrevista será una cosa pequeña y perderé la cara. Si lo supiera antes, vería una vista previa de cómo presumir.

cuatro lados

  • presentarte

  • ¿Cómo te sientes acerca de tus conocimientos básicos?

  • ¿Qué estructuras de datos se suelen utilizar?

  • ¿Cuáles son los pros y los contras de las listas enlazadas en comparación con las matrices?

  • Cómo verificar si dos listas acíclicas enlazadas individualmente tienen intersección

  • Cómo verificar si dos listas cíclicas enlazadas individualmente tienen intersección

  • Cómo juzgar si una lista enlazada individualmente tiene un ciclo y averiguar el punto de entrada

  • ¿Cuál es la diferencia entre TCP y UDP?

  • Describa el proceso de agitar TCP cuatro veces

  • ¿Cuáles son los estados de TCP?

  • ¿Cuál es el estado LISTEN de TCP?

  • ¿Cuál es el estado CLOSE_WAIT de TCP?

  • Qué pasos seguir para establecer una conexión de socket

  • ¿Cuáles son los códigos de estado HTTP comunes?

  • ¿Cuál es la diferencia entre 301 y 302?

  • ¿Cuál es la diferencia entre 504 y 500?

  • ¿Cuál es la diferencia entre HTTPS y HTTP?

  • Escriba un problema de algoritmo: clasificación rápida escrita a mano

El conocimiento básico de esta ronda de todo el proceso, si la base es sólida, no será un problema, pero el jefe siente que es un poco como el método de reclutamiento de la escuela.

cinco lados

  • presentarte

  • ¿Qué desarrollo secundario se ha hecho en k8s?

  • ¿Alguna vez ha creado un gráfico con Helm usted mismo? ¿Qué?

  • ¿Ha considerado encapsular usted mismo una plataforma PaaS orientada a I+D?

  • ¿Qué hace el centro de configuración?

  • ¿Por qué no usar zookeeper?

  • ¿Cómo garantiza la consistencia el centro de configuración?

  • Spring usa un bean singleton, ¿cómo garantizar la seguridad de la concurrencia al acceder a los campos de bean?

  • Use estructuras de datos seguras para la concurrencia, como ConcurrentHashMap, o agregue bloqueos mutex

  • ¿Qué sucede si también quiero aislar los datos de dos subprocesos?

  • ThreadLocal, luego da un ejemplo

  • ¿Qué es el análisis de escape en Golang? ¿Cómo evitar el escape de la memoria?

  • no se, lo siento

  • Comparando Golang y Java GC

  • Respondí CMS, G1 y marcadores de tres colores, mi punto de comparación es que la JVM tiene reciclaje generacional y el Runtime de Go no, por lo que no puedo hablar de ello en profundidad.

  • ¿Cuál es el tiempo de activación del GC de Golang?

  • Disparador de umbral, disparador activo, disparador de tiempo de dos minutos;

  • ¿Alguna vez ha escrito un Operador o Controlador para k8s? (Tipo grande: no lo escribió)

  • Hable sobre su comprensión de la arquitectura de microservicios

  • Idea general "La esencia de los microservicios es la evolución de la estructura de organización del personal y la separación de preocupaciones"

  • Hable acerca de su comprensión de Serveless

  • Idea general "Serveless es otra división de límites entre el desarrollo de aplicaciones y los proveedores de infraestructura después de la orquestación de docker y contenedores"

  • ¿Crees que Serveless es el futuro?¿Por qué?

  • La idea general "es el futuro de los servicios en la nube. Quite el pastel de los departamentos de TI, operación y mantenimiento y middleware de la empresa para formar un efecto de escala. Cuanto más haga, más ganará; sin servicio en la empresa puede ayudar acelerar la iteración del negocio front-end, pero no puedo ver los beneficios del middle y back office, y puede haber una arquitectura más adecuada para el middle y back office que servless en el futuro"

Entrevistador: Finalmente, ¿qué me quieres preguntar?

Grandote: ¿Por qué se organizaron cinco rondas técnicas y dos de ellas parecen no tener nada que ver con k8?

Entrevistador: Creemos que ha hecho muchas cosas y queremos que lo intente en todas las direcciones.

Yo: ¿Es esta la última ronda técnica?

Entrevistador: No necesariamente

También le hice al entrevistador algunas preguntas relacionadas con el negocio, por lo que no entraré en detalles.

El jefe de las últimas tres preguntas de agua que soplan en los cinco lados dijo que estaba bastante interesado, pero desafortunadamente el entrevistador solo lo escuchó y no lo discutió con él. Además, solo cuando le pregunté al entrevistador supe que el entrevistador de ambos lados era de la plataforma PaaS, por lo que la pregunta principal sobre Java fue que k8s y go no estaban involucrados.

Seis lados (lado HR)

Escuché que HR de BAT está aquí para "olfatear" (ver si tiene un estilo de bytes) y tiene poder de veto. Así que todavía es bastante estresante.

  • pregunta por experiencia

  • ¿Por qué considerarías echar un vistazo?

  • La frase de oro: "Ahora mi crecimiento técnico está un poco embotellado, y siempre he admirado su empresa y he estado relajado""

  • ¿Cuál es el negocio principal de la compañía ahora? (Hice muchas preguntas técnicas, siento que quiero probar mi capacidad para explicar problemas complejos)

  • ¿Traer a alguien ahora? ¿Cómo es la jerarquía de informes?

  • ¿Está satisfecho con su experiencia a lo largo de los años?

  • ¿Cuáles crees que son tus debilidades?

  • ¿Pasó algo frustrante?

  • ¿Cuál es tu futuro plan de carrera?

  • Al mirar oportunidades, ¿considera principalmente el trato, la plataforma, el personal u otros factores?

  • ¿Cómo te tratan ahora?

  • ¿Qué quieres preguntarme?

Charlamos durante más de 40 minutos y los temas fueron bastante amplios. El entrevistador también dijo que el departamento de sistemas está bajo mucha presión y que solo los talentos destacados pueden quedarse.

El jefe siente que no hay nada para lo que prepararse en recursos humanos, excepto la parte salarial, solo diga lo que quiera decir. Porque al menos demuestra que su tecnología no es un problema cuando llega a la entrevista de recursos humanos, y es conveniente que los recursos humanos juzguen si los valores en ambos lados están en armonía. .

Resumir

Cuando se trata de entrevistas, de hecho, para decirlo sin rodeos, es cepillar las preguntas y cepillar las preguntas, y cepillarlas todos los días. . . . .

Con el fin de prepararme para este truco de primavera "oro tres plata cuatro", pasé por alto las preguntas durante un mes y llené una gran cantidad de conocimientos, como el algoritmo, la base de datos, Redis, el patrón de diseño y otros temas que se preguntan en este byte. entrevista estoy todo cepillado

Cualquiera que lo necesite puede enviarme un mensaje privado [entrevista]~

Y también organicé todas las preguntas que pinté en documentos PDF o Word (incluido el análisis detallado de las respuestas)

66 Puntos de conocimiento de la entrevista de Java

Temas de arquitectura (MySQL, Java, Redis, subprocesos, concurrencia, patrones de diseño, Nginx, Linux, marcos, microservicios, etc.) + preguntas de entrevista detalladas de los principales fabricantes (Baidu, Ali, Tencent, Huawei, Thunder, NetEase, ZTE, Beijing Chinasoft, etc)

Preguntas de pincel de algoritmo (PDF)

Supongo que te gusta

Origin blog.csdn.net/wdjnb/article/details/124435736
Recomendado
Clasificación