Directorio de visita obligada avanzada de JAVA

Descripción general de las preguntas de la entrevista de JAVA

1. Conceptos básicos de JAVA
1. ¿Cuáles son los diversos tipos de datos básicos en JAVA y cuántos bytes ocupa cada uno?
2. ¿Se puede heredar la clase String y por qué?
3. La diferencia entre String, Stringbuffer y StringBuilder.
4. ¿Cuál es la diferencia entre ArrayList y LinkedList?
5. Hable sobre el orden de instanciación de la clase, como los datos estáticos de la clase principal, el constructor, el campo, los datos estáticos de la subclase, el constructor, el campo, cuando es nuevo, su orden de ejecución.
6. ¿Cuáles son las diferencias entre las clases de mapas que se han usado, si HashMap es seguro para subprocesos, qué mapa se usa al mismo tiempo y cuáles son sus principios internos, como el método de almacenamiento, el código hash, la expansión de capacidad, la capacidad predeterminada, etc.
7. ¿Por qué el ConcurrentHashMap de JAVA8 renunció al bloqueo de segmento? ¿Hay algún problema? Si lo diseña, ¿cómo lo diseña?
8. ¿Hay clases de implementación de mapas en orden y, de ser así, cómo garantizan el pedido?
9. La diferencia entre la clase abstracta y la interfaz, ¿puede una clase heredar múltiples clases, puede una interfaz heredar múltiples interfaces y una clase puede implementar múltiples interfaces?
10. ¿Cuál es la diferencia entre herencia y agregación?
11. Que son los modelos de IO, habla de nio entiendes, cual es la diferencia entre él y bio, aio, habla del modelo de reactor.
12. El principio de la reflexión, ¿cuáles son las tres formas en que la reflexión crea una instancia de clase?
13. Reflexionando, la diferencia entre Class.forName y ClassLoader.
14. Describa varias implementaciones de agentes dinámicos e indique sus respectivas ventajas y desventajas.
15. La diferencia entre la implementación de proxy dinámico y cglib.
16. Por qué el método CGlib puede implementar un proxy para la interfaz.
17. El propósito de final.
18. Escriba tres implementaciones del modo singleton.
19. ¿Cómo completar automáticamente todas las implementaciones de códigos hash e iguales para las subclases en la clase principal? ¿Cuáles son los pros y los contras de hacer esto?
20. Hable sobre el papel de los modificadores de acceso público, privado, protegido y predeterminado en el diseño de aplicaciones basadas en el concepto de diseño OO.
21. La diferencia entre copia profunda y copia superficial.
22. Descripción de la estructura de datos de matrices y listas enlazadas, su respectiva complejidad temporal.
23. La diferencia entre error y excepción, CheckedException, RuntimeException.
24. Enumere 5 excepciones de tiempo de ejecución.
25. En su propio código, si crea una clase java.lang.String, ¿puede el cargador de clases cargar esta clase? por qué.
26. Cuénteme sobre su comprensión de los métodos hashCode y equals en el objeto java.lang.Object. En qué circunstancias es necesario volver a implementar estos dos métodos.
27. En jdk1.5, se introducen los genéricos y se utiliza la existencia de genéricos para resolver problemas.
28. ¿Cuál es el uso de tal.hashcode () y cuál es la relación con a.equals (b)?
29. ¿Es posible que dos objetos desiguales tengan el mismo código hash?
30. ¿Cómo funciona internamente HashSet en Java?
31. Qué es la serialización, cómo serializar, por qué la serialización, qué problemas se encontrarán en la deserialización y cómo resolverlos.
32. Nuevas funciones de java8.


2. Conocimiento de JVM
1. Bajo qué circunstancias se producirá el desbordamiento de la memoria de la pila.
2. Estructura de la memoria JVM, la proporción de Eden y Survivor.
3. ¿Por qué debería dividirse la memoria JVM en nueva generación, antigua generación y generación persistente? ¿Por qué la nueva generación está dividida en Eden y Survivor?
4. Qué es un proceso GC completo en la JVM, cómo se promueve el objeto a la antigüedad y hable sobre los principales parámetros de la JVM que conoce.
5. ¿Sabes qué tipos de recolectores de basura, sus ventajas y desventajas, se enfocan en cms y G1, incluyendo principios, procesos, ventajas y desventajas?
6. El principio de realización del algoritmo de recolección de basura.
7. Cuando hay un desbordamiento de la memoria, ¿cómo se soluciona el problema?
8. ¿Cuánto sabe sobre el conocimiento relevante del modelo de memoria JVM, como reordenamiento, barrera de memoria, suceso anterior, memoria principal, memoria de trabajo, etc.
9. Hable brevemente sobre el cargador de clases que conoce, ¿puede romper la delegación de los padres y cómo hacerlo?
10. Hablar sobre el mecanismo de reflexión de JAVA.
11. ¿Cuáles son los parámetros de JVM de su aplicación en línea?
12. La diferencia entre g1 y cms, prioridad de rendimiento y selección de recolector de basura de prioridad de respuesta.
13. Cómo imprimir la información de la pila de hilos.
14. Explique el significado de los siguientes parámetros de jvm:
       -server -Xms512m -Xmx512m -Xss1024K
      -XX: PermSize = 256m -XX: MaxPermSize = 512m -XX: MaxTenuringThreshold = 20
      XX: CMSInitiatingOccupancyFraction = 80 -XX: + UseCMSInitiatingOccupancyOnly。


3. Conocimiento del marco de código abierto
1. Hable brevemente sobre la estructura de Tomcat, su proceso de carga de clases, modelo de subprocesos, etc.
2. Cómo ajustar Tomcat y qué parámetros están involucrados.
3. Hable sobre el proceso de carga de Spring.
4. El principio de realización de Spring AOP.
5. Hable sobre las propiedades de propagación de las transacciones Spring.
6. ¿Cómo gestiona Spring las transacciones?
7. ¿Cómo configura Spring las transacciones (especifique algunos elementos XML clave)?
8. Cuénteme acerca de su comprensión de Spring, el principio de inyección sin singleton. ¿Su ciclo de vida? El principio de inyección cíclica, el principio de realización de aop, habla de varios términos en aop, cómo funcionan entre sí.
9. El proceso de inicialización de DispatcherServlet en Springmvc.
10. Modelo de subprocesamiento de Netty, qué tan netty se basa en el modelo de reactor.
11. Por qué elegir netty.
12. ¿Qué es el paquete adhesivo TCP y su desembalaje? Cuál es la solución.
13. El principio de uso y realización del fashwheeltimer de netty, si la llamada no es puntual y cómo resolverla.
14. Qué hacer con el procesamiento de latidos de netty en una red débil.
15. ¿Cuál es el protocolo de comunicación de netty?
16. Las anotaciones utilizadas por springmvc, cuáles son sus funciones y sus principios.
17. Mecanismo de inicio de Springboot.

 

4. Sistema operativo
1. ¿A qué parámetros del kernel ha prestado atención en el sistema Linux? Dígame lo que sabe.
2. Existen varios modelos de E / S en Linux y cuáles son sus significados.
3. ¿Cuál es la diferencia entre epoll y poll?
4. Qué comandos de Linux se utilizan habitualmente.
5. Utilice un comando de una línea para ver las últimas cinco líneas del archivo.
6. Utilice una línea de comando para generar el proceso de Java en ejecución.
7. Introduzca el proceso de cambio de subprocesos en el sistema operativo que comprende.
8. La diferencia entre proceso e hilo.
9. ¿Cuáles son los contenidos después del comando superior y cuáles son los efectos?
10. La CPU en línea se está disparando, ¿cómo encuentra el problema?

 

5. Subprocesos múltiples
1. Varias implementaciones de subprocesos múltiples , qué es la seguridad de subprocesos.
2. El principio y la función de volátil, ¿puede reemplazar las cerraduras?
3. Dibuje el diagrama de estado del ciclo de vida de un hilo.
4. La diferencia entre dormir y esperar.
5. La diferencia entre dormir y dormir (0).
6. La diferencia entre Bloquear y Sincronizado.
7. ¿Cuál es el principio de sincronizado y dónde se usa generalmente (como agregar a la diferencia entre un método estático y un método no estático, afectará la ejecución de un método estático y un método no estático al mismo tiempo? tiempo), explique los siguientes términos: reordenación, cerraduras de giro automático, cerraduras parciales, cerraduras ligeras, cerraduras reentrantes, cerraduras regulares, cerraduras injustas, cerraduras optimistas y cerraduras pesimistas.
8. Qué clases atómicas se han utilizado y cuáles son sus principios.
9. Qué herramientas de concurrencia se han estudiado en JUC y hablar sobre los principios.
10. ¿Alguna vez ha utilizado el grupo de subprocesos? Si lo ha utilizado, explique el principio y hable sobre la diferencia entre newCache y newFixed, y el significado de cada parámetro del constructor, como coreSize, maxsize, etc.
11. Hay varias formas de cerrar el grupo de subprocesos y cuál es la diferencia entre ellas.
12. Si hay una interfaz de terceros, hay muchos subprocesos para llamar para obtener datos, ahora se estipula que como máximo 10 subprocesos pueden llamarlo al mismo tiempo cada segundo, cómo hacerlo.
13. ¿Es el controlador de resorte una instancia única o múltiple, y cómo garantizar la seguridad de la concurrencia?
14. Utilice tres hilos para imprimir abc tres letras secuencialmente, como abcabcabc.
15. ¿Alguna vez ha usado ThreadLocal, cuál es su propósito, su principio y a qué se debe prestar atención al usarlo?
16. Si tuviera que implementar una lista enlazada segura para la concurrencia, ¿qué haría?
17. ¿Qué son las estructuras de datos sin bloqueo y cuáles son los principios de su implementación?
18. Hablar de esperar y notificar el mecanismo de sincronización de Java.
19. Qué es el mecanismo CAS y cómo resolver el problema ABA.
20. Subprocesos múltiples, ¿qué pasa si el hilo se cuelga?
21. Los principios internos y el uso de countdownlatch y cyclicbarrier, y las diferencias entre ellos (como el método de espera de countdownlatch y cómo se implementa).
22. ¿Cuánto sabe sobre AbstractQueuedSynchronizer, hablar sobre el proceso de bloqueo y desbloqueo, y cuál es la diferencia entre bloqueo exclusivo y bloqueo justo?
23. ¿Cuál es la diferencia entre usar sincronizados para decorar métodos estáticos y métodos no estáticos?
24. Describa brevemente el uso y la diferencia de ConcurrentLinkedQueue y LinkedBlockingQueue.
25. ¿Qué causa el interbloqueo del hilo? Cómo liberar el punto muerto del hilo.
26. Hay muchos subprocesos (pueden ser diferentes máquinas), y necesitan esperar a que se coordinen entre sí para completar un cierto tipo de trabajo, pregunte cómo diseñar este esquema de coordinación.
27. ¿Alguna vez ha utilizado un bloqueo de lectura-escritura? ¿Cuál es el principio y en qué escenarios se utiliza generalmente?
28. Abra varios subprocesos. Si garantiza la ejecución secuencial, ¿cuáles son las formas de lograrlo o cómo asegurarse de que se ejecuten varios subprocesos antes de obtener el resultado?
29. La implementación de la cola de retardo, las similitudes y diferencias entre delayQueue y el algoritmo de ciclo de tiempo.

 

6. TCP y HTTP
1. ¿Cuál es la diferencia entre http1.0 y http1.1?
2. En el protocolo de enlace de tres vías de TCP y cuatro manos agitadas, ¿por qué la desconexión tarda 4 veces? Si solo hay dos apretones de manos, ¿qué sucederá?
3. La diferencia entre TIME_WAIT y CLOSE_WAIT.
4. Cuénteme acerca de varios códigos de respuesta HTTP que conozca, como 200, 302, 404.
5. Cuando abre un enlace con un navegador, ¿qué pasos sigue la computadora?
6. ¿Cómo garantiza TCP / IP la confiabilidad y hablar sobre la estructura del encabezado TCP?
7. Cómo evitar el almacenamiento en caché del navegador.
8. Cómo entender la apatridia del protocolo HTTP.
9. Describa brevemente la diferencia entre obtener y publicar solicitudes Http y el formato del paquete de datos.
10. ¿Cuáles son los métodos HTTP?
11. Describa brevemente el formato de mensaje de la solicitud HTTP.
12. ¿Qué significa la conexión larga de HTTP?
13. ¿Cuál es el método de cifrado de HTTPS? Hablemos de todo el proceso de cifrado y descifrado.
14. ¿Cuál es la diferencia entre el protocolo de enlace de tres vías entre Http y https.
15. Qué es la transferencia en bloque.
16. La diferencia entre sesión y cookie.


7. Diseño y distribución de la arquitectura
1. Utilice java para implementar una LRU usted mismo.
2. Cómo lograr un número de serie único en un clúster distribuido.
3. Diseñe un sistema de picos que cierre automáticamente la transacción sin pago en 30 minutos.
4. ¿Cómo usar redis y zookeeper para implementar bloqueos distribuidos? ¿Cuál es la diferencia entre las ventajas y las desventajas, qué problemas habrá y qué escenarios son aplicables? (Extensión: si conoces a Redlock, habla sobre la implementación de su algoritmo, dónde está la disputa)
5. Si alguien crea maliciosamente una conexión ilegal, cómo solucionarlo.
6. El principio, las ventajas y desventajas de las transacciones distribuidas, cómo utilizar las transacciones distribuidas, la diferencia entre 2pc y 3pc, qué problemas se han resuelto y qué problemas no se han resuelto, cómo resolverlos y cómo se involucran las transacciones distribuidas. en tu propio proyecto manejado ?.
7. ¿Qué es un hash consistente?
8. Qué es descanso, hable de descanso tal como lo entiende.
9. Cómo diseñar una buena API.
10. Cómo diseñar para establecer y mantener una conexión de 100w de largo.
11. Explique qué es el protocolo MESI (coherencia de caché).
12. Hable sobre varios algoritmos HASH que conoce, los simples están bien.
13. Qué es el algoritmo paxos y qué es el protocolo zab.
14. Un sistema de documentos en línea, los documentos se pueden editar, cómo evitar que varias personas editen y actualicen el mismo documento al mismo tiempo.
15. El sistema en línea de repente se vuelve anormalmente lento, ¿cómo encuentra el problema?
16. Habla sobre los patrones de diseño que usas habitualmente.
17. El principio de Dubbo, ¿ha visto el código fuente, cómo fluyen los datos, cómo implementar la agrupación en clústeres, el equilibrio de carga, el registro y descubrimiento de servicios, el reenvío de reintentos y cuál es la estrategia de falla rápida?
18. Cuál es el flujo de una solicitud RPC.
19. ¿Ha implementado rpc usted mismo? El principio se puede explicar brevemente. ¿Qué problema quiere resolver Rpc?
20. El propósito y la importancia del modo asincrónico.
21. ¿Cómo considero algunos principios de diseño en la programación, como los principios de apertura y cierre, y la aplicación en el trabajo?
22. Diseñe una función de "mensaje privado" en un sitio de redes sociales, que requiera alta concurrencia, escalabilidad, etc. Dibuja un diagrama de arquitectura.
23. Patrón MVC, es decir, un marco MVC común.
24. Hable sobre la arquitectura del servidor en el que ha participado en el diseño y haga un dibujo, y hable sobre los problemas encontrados y cómo solucionarlos.
25. Cómo monitorear el rendimiento del servidor de aplicaciones, la diferencia de varias maneras.
26. Cómo diseñar un esquema de pago de alta concurrencia y cómo diseñar la arquitectura.
27. Cómo lograr el equilibrio de carga y qué algoritmos se pueden implementar.
28. Cuál es el propósito de Zookeeper y el principio de elección.
29. Principio del mecanismo de vigilancia del guardián del zoológico.
30. El principio de realización subyacente de Mybatis.
31. Considere un plan para implementar countDownLatch en un entorno distribuido.
32. ¿Cómo evita el sistema de antecedentes la presentación repetida de solicitudes?
33. Describa el proceso detallado de un servicio desde que se publica hasta que se consume.
34. Hable sobre la gobernanza del servicio que comprenda.
35. Cómo lograr la idempotencia de la interfaz.
36. Cómo hacer la estrategia de limitación actual, los escenarios de uso del depósito de tokens y el algoritmo del embudo.
37. ¿Qué es la coherencia de los datos y cómo se entiende la coherencia de los datos?
38. Si la persona que llama del servicio distribuido no depende del proveedor de servicios, ¿cómo lidiar con el desperdicio de una gran cantidad de solicitudes de recursos no válidas después de que el proveedor de servicios cuelga? ¿Qué hacer si el rendimiento del proveedor de servicios no es alto? el servicio cuelga, luego Después de reiniciar, cómo lograr el mínimo desperdicio de recursos y cuál es el mecanismo de implementación del tráfico semiabierto.
39. Cómo implementar la llamada de generalización de dubbo, si fuera usted, cómo lo haría.
40. Habrá un fenómeno de tiempo de espera en las llamadas remotas. Si puede lograr un control elegante, ¿cuáles son los mecanismos de tiempo de espera que vienen con el JDK y cómo lograrlo?


8. Algoritmo
1. Halla el 10 más pequeño de mil millones de números.
2. Hay 100 millones de números, de los cuales 2 se repiten, encuéntrelo rápidamente, el tiempo y el espacio deben ser óptimos.
3,2 millones de enteros desordenados generados aleatoriamente, encuentre el valor del tamaño medio.
4. Para una cadena de entrada de longitud desconocida (que puede ser muy grande), diseñe un esquema para ordenar los caracteres repetidos.
5. Recorre el árbol binario.
6. Hay 3n + 1 números, de los cuales 3n se repiten, y solo no se repite 1. ¿Cómo averiguarlo?
7. Escriba una función de inversión de cadena.
8. Algoritmos de clasificación de uso común, clasificación rápida, fusión y propagación. La complejidad del tiempo óptimo de clasificación rápida, la peor complejidad. El esquema de optimización de la clasificación de burbujas.
9. La complejidad temporal y las ventajas de la búsqueda binaria.
10. Cómo completar la clasificación inversa de un TreeSet construido.
11. ¿Qué es el árbol B +, árbol B? Enumere los escenarios de uso reales.
12. Una lista enlazada individualmente, elimine los datos N de la parte inferior.
13. 200 matrices ordenadas con 100 elementos en cada matriz, encuentre el elemento top20.
14. Lista enlazada individualmente, encuentre el elemento en el medio.


9. Conocimiento de la base de datos
1. Cuáles son los niveles de aislamiento de la base de datos, cuáles son sus significados y cuál es el nivel de aislamiento predeterminado de MYSQL.
2. Qué es una lectura fantasma.
3. Qué motores de almacenamiento tiene MYSQL y sus ventajas y desventajas.
4. Cómo modificar de forma segura la misma fila de datos en alta concurrencia.
5. ¿Qué son las cerraduras optimistas y las cerraduras pesimistas? ¿Cuáles son los dos tipos de cerraduras estándar de nivel de fila de INNODB? Explique sus significados.
6. Cuáles son los pasos generales de la optimización de SQL, cómo mirar el plan de ejecución y cómo comprender el significado de cada campo.
7. ¿Se interbloqueará la base de datos? Dé un ejemplo de interbloqueo, ¿cómo resuelve mysql el interbloqueo?
8. Principio del índice MYsql, cuáles son los tipos de índices, cómo crear índices razonables y cómo optimizarlos.
9. La diferencia entre un índice agrupado y un índice no agrupado.
10. ¿Cuál es el significado de seleccionar para actualizar, si bloqueará la tabla o la fila o algo más?
11. Por qué usar Btree para lograr, cómo se divide, cuándo se divide y por qué está equilibrado.
12. ¿Qué es el ACID de la base de datos?
13. Hay casi 10 millones de datos en una tabla, CRUD es lento, cómo optimizarlo.
14. ¿Cómo optimiza Mysql el escaneo de tablas?
15. Cómo escribir sql para utilizar eficazmente el índice compuesto.
16. La diferencia entre in y existe en mysql.
17. Posibles problemas con la base de datos que incrementa automáticamente la clave primaria.
18. El significado de MVCC y cómo lograrlo.
19. ¿Encontró subbase de datos y subtabla en los proyectos que ha realizado? ¿Cómo lo hace? ¿Es útil para middleware, como fragmentación de jdbc, etc. Conoce sus principios?
20. Cómo solucionar el retraso maestro-esclavo de MYSQL.


10. Cola de mensajes
1. Utilice escenarios de cola de mensajes.
2. Retransmisión de mensajes, estrategias complementarias.
3. Cómo asegurar el orden del mensaje.
4. ¿Qué MQ se han utilizado, cuáles son las ventajas y desventajas en comparación con otros MQ, la conexión de MQ es segura para subprocesos y cuál es la arquitectura de servicio MQ de su empresa?
5. Cómo asegurarse de que no se pierdan los datos del sistema MQ.
6. Cómo rabbitmq logra una alta disponibilidad de clústeres.
7. La razón del alto rendimiento de Kafka.
8. La diferencia entre kafka y otras colas de mensajes, cómo realizar la sincronización maestro-esclavo de kafka.
9. Cómo utilizar mq para lograr la consistencia final.
10. ¿Ha encontrado algún problema al utilizar Kafka y cómo solucionarlo?
11. MQ puede tener un consumo repetido, cómo evitarlo y cómo ser idempotente.
12. ¿Cómo lidiar con los mensajes MQ que están retrasados? ¿Se pueden configurar los mensajes con un tiempo de vencimiento? ¿Cómo se manejan cuando caducan?


11. Almacenamiento en caché
1. ¿Cuáles son las estrategias comunes de almacenamiento en caché, cómo lograr la consistencia de los datos en el caché (como redis) y la base de datos, qué sistema de almacenamiento en caché se utiliza en su proyecto y cómo diseñarlo.
2. Cómo evitar la rotura de la caché y las avalanchas.
3. Cómo diseñar la actualización después de que caduquen los datos almacenados en caché.
4. Operaciones relacionadas con la estructura de la lista redis.
5. Cuáles son las estructuras de datos de Redis.
6. A qué debe prestar atención al usar Redis, hablar sobre métodos de persistencia, configuraciones de memoria, aplicaciones de clúster y ventajas y desventajas, estrategias de eliminación, etc.
7. La diferencia entre redis2 y redis3, mecanismo de comunicación interna redis3.
8. Cuáles son los juegos de clúster de redis actuales, sus ventajas y desventajas y escenarios.
9. El principio de Memcache, qué datos son adecuados para colocarse en la caché.
10. La diferencia entre redis y la gestión de memoria memcached.
11. ¿Cómo resolver el problema de la competencia concurrente en Redis? ¿Entiende el funcionamiento de CAS de las transacciones de Redis?
12. ¿Cuál es el algoritmo y el proceso de elección de Redis?
13. Mecanismo de persistencia de Redis, la diferencia entre AOF y RDB.
14. ¿Cómo sincroniza los datos el clúster de redis?
15. Conozca las operaciones optimizadas de redis.
16. Principio del mecanismo de replicación maestro-esclavo de Reids.
17. ¿Cuál es el modelo de subprocesamiento de Redis?
18. Piense en un plan, diseñe una caché local adaptable automáticamente que pueda controlar el tamaño general de la caché.
19. Cómo tratar el uso de la caché (caché local, caché centralizada), describa brevemente las ventajas y desventajas de la caché local y la caché centralizada. Precauciones para el uso concurrente de caché local.


12. Búsqueda
1. ¿Cuánto sabe acerca de elasticsearch, hable sobre la arquitectura del clúster es de su empresa, el tamaño de los datos del índice, cuántos fragmentos y algunos métodos de ajuste. ¿Cuál es el índice invertido de elasticsearch.
2. ¿Qué debo hacer si hay demasiados datos de índice de elasticsearch, cómo ajustar e implementar?
3. ¿Cómo implementa elasticsearch la elección maestra?
4. Describa en detalle el proceso de indexación de documentos de Elasticsearch.
5. Describa el proceso de búsqueda de Elasticsearch en detalle.
6. Cuando se implementa Elasticsearch, ¿cuáles son los métodos de optimización para la configuración de Linux?
7. Cuál es la estructura interna de lucence.

Supongo que te gusta

Origin blog.csdn.net/weixin_45450428/article/details/104644172
Recomendado
Clasificación