En 2023, la última versión del tutorial de entrevista Java de ocho patas en la estación B cubre 1300 preguntas de entrevista.

prefacio

Reclutas de primavera, reclutas de otoño, reclutas sociales, el camino de la entrevista para nuestros programadores de Java es bastante difícil. Después de pasar el HR, tienes que ser entrevistado en el aspecto técnico. Me quité mucho, pero afortunadamente, tuve la suerte de ser Al final, pude unirme a una compañía unicornio, y he estado trabajando en el trabajo que me gusta hasta ahora... Recientemente, tomé la mayor parte del tiempo libre y preparé una entrevista que condujo a una gran fábrica para todos. un conjunto completo de preguntas y respuestas de la entrevista de revisión de Java. Sé que muchos estudiantes no saben cómo revisar y cuáles son los puntos clave en el proceso de aprendizaje. De hecho, Xiao Ma también ha experimentado lo que usted ha experimentado. Debería será porque yo lo he experimentado, así que no quiero ver que todavía hay miles de estudiantes que están heridos por esto. Tal vez este artículo no pueda ayudar a miles de estudiantes, pero puede ayudar a la persona confundida que está leyendo esto. artículo en la plataforma Zhihu. ¡Yo también estoy satisfecho!

También pasé varios meses recopilando y clasificando N preguntas comunes de entrevistas en las principales fábricas. Todo lo que desea está cubierto aquí: Java, MyBatis, ZooKeeper, Dubbo, Elasticsearch, Memcached, Redis, MySQL, Spring, Spring Boot, Spring Cloud, RabbitMQ, ¡Kafka, Linux y otras pilas de tecnología! !

 Las preguntas específicas de la entrevista son las siguientes:

1. Conceptos básicos de Java

  • 1. ¿Cuál es la diferencia entre JDK y JRE?

  • 2. ¿Cuál es la diferencia entre == y equals?

  • 3. Si el hashCode() de dos objetos es el mismo, equals() también debe ser verdadero, ¿no?

  • 4. ¿Cuál es el papel de final en java?

  • 5. ¿A qué equivale Math.round(-1.5) en java?

  • 6. ¿Es String un tipo de datos básico?

  • 7. ¿Qué clases hay para manipular cadenas en Java? ¿Cual es la diferencia entre ellos?

  • 8. ¿Es String str="i" lo mismo que String str=new String("i")?

  • 9. ¿Cómo invertir una cadena?

  • 10. ¿Cuáles son los métodos comúnmente utilizados de la clase String?

  • 11. ¿Una clase abstracta tiene que tener métodos abstractos?

  • 12. ¿Cuál es la diferencia entre una clase normal y una clase abstracta?

  • 13. ¿Se puede decorar una clase abstracta con final?

  • 14. ¿Cuál es la diferencia entre interfaz y clase abstracta?

  • 15. ¿Cuántos tipos de flujos IO hay en Java?

  • 16. ¿Cuál es la diferencia entre BIO, NIO y AIO?

  • 17. ¿Cuáles son los métodos comunes de Archivos?

2. Contenedor

  • 18. ¿Qué son los contenedores de Java?

  • 19. ¿Cuál es la diferencia entre Colección y Colecciones?

  • 20. ¿Cuál es la diferencia entre Lista, Conjunto, Mapa?

  • 21. ¿Cuál es la diferencia entre HashMap y Hashtable?

  • 22. ¿Cómo decidir usar HashMap o TreeMap?

  • 23. Cuénteme sobre el principio de implementación de HashMap.

  • 24. Cuénteme sobre el principio de implementación de HashSet.

  • 25. ¿Cuál es la diferencia entre ArrayList y LinkedList?

  • 26. ¿Cómo realizar la conversión entre array y List?

  • 27. ¿Cuál es la diferencia entre ArrayList y Vector?

  • 28. ¿Cuál es la diferencia entre Array y ArrayList?

  • 29. ¿Cuál es la diferencia entre poll() y remove() en Queue?

  • 30. ¿Qué clases de colección son seguras para subprocesos?

  • 31. ¿Qué es iterador iterador?

  • 32. ¿Cómo usar Iterator? ¿Cuáles son las características?

  • 33. ¿Cuál es la diferencia entre Iterator y ListIterator?

  • 34. ¿Cómo asegurar que una colección no pueda ser modificada?

3. Multiproceso

  • 35. ¿Cuál es la diferencia entre paralelismo y concurrencia?

  • 36. ¿Cuál es la diferencia entre hilo y proceso?

  • 37. ¿Qué es un subproceso daemon?

  • 38. ¿Cuáles son las formas de crear hilos?

  • 39. ¿Cuál es la diferencia entre ejecutable y exigible?

  • 40. ¿Cuáles son los estados de un hilo?

  • 41. ¿Cuál es la diferencia entre dormir() y esperar()?

  • 42. ¿Cuál es la diferencia entre notificar() y notificarTodos()?

  • 43. ¿Cuál es la diferencia entre run() y start() de un hilo?

  • 44. ¿Cuáles son las formas de crear un grupo de subprocesos?

  • 45. ¿Cuáles son los estados del grupo de subprocesos?

  • 46. ​​​​¿Cuál es la diferencia entre los métodos de envío () y ejecución () en el grupo de subprocesos?

  • 47. ¿Cómo garantizar la seguridad de la operación de subprocesos múltiples en el programa java?

  • 48. ¿Cuál es el principio de actualización de bloqueos de subprocesos múltiples?

  • 49. ¿Qué es un punto muerto?

  • 50. ¿Cómo evitar el interbloqueo?

  • 51. ¿Qué es ThreadLocal? ¿Cuáles son los escenarios de uso?

  • 52. Cuénteme sobre el principio de implementación subyacente de sincronizado.

  • 53. ¿Cuál es la diferencia entre sincronizado y volátil?

  • 54. ¿Cuál es la diferencia entre sincronizado y Bloqueado?

  • 55. ¿Cuál es la diferencia entre sincronizado y ReentrantLock?

  • 56. Cuéntame sobre el principio de la atómica?

4. Reflexión

  • 57. ¿Qué es la reflexión?

  • 58. ¿Qué es la serialización de Java? ¿Cuándo se requiere serialización?

  • 59. ¿Qué es un proxy dinámico? ¿Cuáles son las aplicaciones?

  • 60. ¿Cómo implementar proxy dinámico?

5. Copia de objetos

  • 61. ¿Por qué utilizar la clonación?

  • 62. ¿Cómo implementar la clonación de objetos?

  • 63. ¿Cuál es la diferencia entre copia profunda y copia superficial?

6. Web de Java

  • 64. ¿Cuál es la diferencia entre jsp y servlet?

  • 65. ¿Qué objetos incorporados tiene jsp? ¿Cuáles son las funciones?

  • 66. Hábleme de los 4 ámbitos de jsp.

  • 67. ¿Cuál es la diferencia entre sesión y cookie?

  • 68. Cuénteme sobre el principio de funcionamiento de la sesión.

  • 69. Si el cliente prohíbe las cookies, ¿se puede seguir utilizando la sesión?

  • 70. ¿Cuál es la diferencia entre spring mvc y struts?

  • 71. ¿Cómo evitar la inyección de sql?

  • 72. ¿Qué es un ataque XSS y cómo evitarlo?

  • 73. ¿Qué es un ataque CSRF y cómo evitarlo?

7. Anormal

  • 74. ¿Cuál es la diferencia entre throw y throws?

  • 75. ¿Cuál es la diferencia entre final, finalmente y finalizar?

  • 76. ¿Qué parte de try-catch-finally se puede omitir?

  • 77. En try-catch-finally, si hay una devolución en la captura, ¿finalmente todavía se ejecutará?

  • 78. ¿Cuáles son las clases de excepción comunes?

8. Red

  • 79. ¿Qué representan los códigos de respuesta http 301 y 302? ¿Cual es la diferencia?

  • 80. ¿Cuál es la diferencia entre reenviar y redirigir?

  • 81. Describa brevemente la diferencia entre tcp y udp.

  • 82. ¿Por qué tcp necesita darse la mano tres veces, no se puede hacer dos veces? ¿Por qué?

  • 83. ¿Dígame cómo se genera el paquete adhesivo tcp?

  • 84. ¿Cuáles son los modelos de siete capas de OSI?

  • 85. ¿Cuál es la diferencia entre las solicitudes get y post?

  • 86. ¿Cómo lograr un dominio cruzado?

  • 87. Cuénteme sobre el principio de implementación de JSONP.

9. Patrones de diseño

  • 88. Cuéntame sobre los patrones de diseño con los que estás familiarizado.

  • 89. ¿Cuál es la diferencia entre fábrica simple y fábrica abstracta?

十、Primavera/Primavera MVC

  • 90. ¿Por qué usar resorte?

  • 91. Explique ¿Qué es aop?

  • 92. Explique ¿Qué es el COI?

  • 93. ¿Cuáles son los principales módulos de la primavera?

  • 94. ¿Cuáles son los métodos de inyección más utilizados en primavera?

  • 95. ¿Los frijoles en primavera son seguros para las roscas?

  • 96. ¿Cuántos bean scopes admite Spring?

  • 97. ¿Cuáles son las formas de ensamblar frijoles automáticamente en primavera?

  • 98. ¿Cuáles son los métodos de implementación de las transacciones de primavera?

  • 99. ¿Cuénteme sobre el aislamiento de transacciones de primavera?

  • 100. Cuéntame sobre el proceso de ejecución de Spring MVC.

  • 101. ¿Cuáles son los componentes de spring mvc?

  • 102. ¿Cuál es el rol de @RequestMapping?

  • 103. ¿Cuál es el rol de @Autowired?

11. Bota primaveral/Nube primaveral

  • 104. ¿Qué es la bota de resorte?

  • 105. ¿Por qué usar bota de resorte?

  • 106. ¿Cuál es el archivo de configuración central de Spring Boot?

  • 107. ¿Cuáles son los tipos de archivos de configuración de Spring Boot? ¿Cual es la diferencia?

  • 108. ¿Cuáles son las formas del arranque de resorte para lograr un despliegue en caliente?

  • 109. ¿Cuál es la diferencia entre jpa e hibernate?

  • 110. ¿Qué es la nube de primavera?

  • 111. ¿Cuál es la función del interruptor automático de nube de resorte?

  • 112. ¿Cuáles son los componentes centrales de la nube de primavera?

12. Hibernar

  • 113. ¿Por qué usar hibernación?

  • 114. ¿Qué es un marco ORM?

  • 115. ¿Cómo ver la instrucción sql impresa en la consola en hibernación?

  • 116. ¿Cuántos métodos de consulta tiene hibernate?

  • 117. ¿Se puede definir la clase de entidad de hibernación como final?

  • 118. ¿Cuál es la diferencia entre usar Integer e int para mapear en hibernación?

  • 119. ¿Cómo funciona la hibernación?

  • 120. ¿Cuál es la diferencia entre get() y load()?

  • 121. Cuénteme sobre el mecanismo de almacenamiento en caché de hibernación.

  • 122. ¿Cuáles son los estados de los objetos de hibernación?

  • 123. ¿Cuál es la diferencia entre getCurrentSession y openSession en hibernación?

  • 124. ¿Las clases de entidad de hibernación deben tener un constructor sin parámetros? ¿Por qué?

Trece, Mybatis

  • 125. ¿Cuál es la diferencia entre #{} y ${} en mybatis?

  • 126. ¿Cuántos métodos de paginación tiene mybatis?

  • 127. ¿RowBounds consulta todos los resultados a la vez? ¿Por qué?

  • 128. ¿Cuál es la diferencia entre la paginación lógica y la paginación física de mybatis?

  • 129. ¿Mybatis admite la carga diferida? ¿Cuál es el principio de carga diferida?

  • 130. Cuéntame sobre el caché de primer nivel y el caché de segundo nivel de mybatis.

  • 131. ¿Cuáles son las diferencias entre mybatis e hibernate?

  • 132. ¿Qué Ejecutores tiene mybatis?

  • 133. ¿Cuál es el principio de implementación del complemento de paginación de mybatis?

  • 134. ¿Cómo escribe mybatis un complemento personalizado?

14. ConejoMQ

  • 135. ¿Cuáles son los escenarios de uso de rabbitmq?

  • 136. ¿Cuáles son las funciones importantes de rabbitmq?

  • 137. ¿Cuáles son los componentes importantes de rabbitmq?

  • 138. ¿Cuál es la función de vhost en rabbitmq?

  • 139. ¿Cómo se envía el mensaje de rabbitmq?

  • 140. ¿Cómo asegura rabbitmq la estabilidad de los mensajes?

  • 141. ¿Cómo evita rabbitmq la pérdida de mensajes?

  • 142. ¿Cuáles son las condiciones para asegurar el éxito de la persistencia del mensaje?

  • 143. ¿Cuáles son las desventajas de la persistencia de rabbitmq?

  • 144. ¿Cuántos tipos de transmisión tiene rabbitmq?

  • 145. ¿Cómo implementa rabbitmq una cola de mensajes retrasados?

  • 146. ¿Para qué sirve el clúster de rabbitmq?

  • 147. ¿Cuáles son los tipos de nodos de rabbitmq?

  • 148. ¿A qué problemas se debe prestar atención al construir un clúster de rabbitmq?

  • 149. ¿Cada nodo de rabbitmq es una copia completa de otros nodos? ¿Por qué?

  • 150. ¿Qué sucede cuando falla el único nodo de disco en el clúster de rabbitmq?

  • 151. ¿Tiene rabbitmq algún requisito para la orden de parada de los nodos del clúster?

Quince, Kafka

  • 152. ¿Se puede usar kafka independientemente de zookeeper? ¿Por qué?

  • 153. ¿Cuántas estrategias de retención de datos tiene kafka?

  • 154. Kafka está configurado para borrar datos durante 7 días y 10 G al mismo tiempo. Para el quinto día, el mensaje llegó a 10 G. ¿Cómo lo manejará Kafka en este momento?

  • 155. ¿Qué hará que kafka funcione lentamente?

  • 156. ¿A qué se debe prestar atención cuando se usa el clúster de Kafka?

16. Guardián del zoológico

  • 157. ¿Qué es el cuidador del zoológico?

  • 158. ¿Qué funciones tiene el cuidador del zoológico?

  • 159. ¿Cuántos modos de despliegue tiene zookeeper?

  • 160. ¿Cómo asegura zookeeper la sincronización de estado de los nodos maestro y esclavo?

  • 161. ¿Por qué hay un nodo maestro en el clúster?

  • 162. Hay 3 servidores en el clúster, uno de los nodos está inactivo, ¿se puede seguir usando zookeeper en este momento?

  • 163. Cuénteme sobre el mecanismo de notificación del cuidador del zoológico.

Diecisiete, MySql

  • 164. ¿Cuáles son los tres paradigmas de la base de datos?

  • 165. Hay un total de 7 piezas de datos en una tabla de incremento automático, elimine las últimas 2 piezas de datos, reinicie la base de datos mysql e inserte otra pieza de datos, ¿cuál es la identificación en este momento?

  • 166. ¿Cómo obtener la versión actual de la base de datos?

  • 167. Dime ¿qué es ACID?

  • 168. ¿Cuál es la diferencia entre char y varchar?

  • 169. ¿Cuál es la diferencia entre float y double?

  • 170. ¿Cuál es la diferencia entre unión interna, unión izquierda y unión derecha en mysql?

  • 171. ¿Cómo se implementa el índice mysql?

  • 172. ¿Cómo verificar si el índice mysql cumple con los requisitos?

  • 173. Cuéntame sobre el aislamiento de transacciones de la base de datos.

  • 174. Háblame de los motores comúnmente utilizados por mysql?

  • 175. Cuénteme acerca de los bloqueos de fila y los bloqueos de tabla de mysql.

  • 176. ¿Hablar de bloqueo optimista y bloqueo pesimista?

  • 177. ¿Cuáles son los métodos para solucionar problemas de mysql?

  • 178. ¿Cómo optimizar el rendimiento de mysql?

18. Redis

  • 179. ¿Qué es redis? ¿Cuáles son los escenarios de uso?

  • 180. ¿Qué funciones tiene redis?

  • 181. ¿Cuál es la diferencia entre redis y memecache?

  • 182. ¿Por qué redis es de un solo subproceso?

  • 183. ¿Qué es la penetración de caché? ¿Como lidiar con?

  • 184. ¿Qué tipos de datos admite redis?

  • 185. ¿Cuáles son los clientes Java compatibles con redis?

  • 186. ¿Cuál es la diferencia entre jedis y redisson?

  • 187. ¿Cómo garantizar la coherencia de los datos de la caché y la base de datos?

  • 188. ¿Cuántas formas hay para redis persistencia?

  • 189. ¿Cómo implementa redis bloqueos distribuidos?

  • 190. ¿Cuáles son los defectos del bloqueo distribuido redis?

  • 191. ¿Cómo optimiza Redis la memoria?

  • 192. ¿Cuáles son las estrategias de eliminación de redis?

  • 193. ¿Cuáles son los problemas de rendimiento comunes de redis? ¿Cómo resolverlo?

Diecinueve, JVM

  • 194. Cuéntame sobre los principales componentes de jvm. y su papel?

  • 195. Cuénteme sobre el área de datos de tiempo de ejecución de jvm.

  • 196. Cuéntame sobre la diferencia entre pilas.

  • 197. ¿Qué son las colas y las pilas? ¿Cual es la diferencia?

  • 198. ¿Qué es el modelo de delegación parental?

  • 199. Cuénteme sobre el proceso de ejecución de la carga de clases.

  • 200. ¿Cómo juzgar si el objeto se puede reciclar?

  • 201. ¿Cuáles son los tipos de referencia en Java?

  • 202. ¿Dime qué algoritmos de recolección de basura tiene jvm?

  • 203. Dime que tipo de recolectores de basura tiene jvm?

  • 204. ¿Describa el recolector de basura CMS en detalle?

  • 205. ¿Qué son el recolector de basura de nueva generación y el recolector de basura de vieja generación? ¿Cual es la diferencia?

  • 206. Describa brevemente cómo funciona el recolector de basura generacional.

  • 207. Háblame de las herramientas de ajuste de jvm.

  • 208. ¿Cuáles son los parámetros de ajuste de jvm comúnmente utilizados?

Preguntas de la entrevista MyBatis

  • 1. ¿Qué es Mybatis?

  • 2. Ventajas de Mybaits:

  • 3. Desventajas del framework MyBatis:

  • 4. Ocasiones aplicables al framework MyBatis:

  • 5. ¿Cuáles son las diferencias entre MyBatis e Hibernate?

  • 6. ¿Cuál es la diferencia entre #{} y ${}?

  • 7. ¿Qué debo hacer si el nombre del atributo en la clase de entidad es diferente del nombre del campo en la tabla?

  • 8. ¿Cómo escribir la consulta difusa como declaración?

Preguntas de la entrevista de ZooKeeper

  • La diferencia entre el balanceo de carga de zookeeper y el balanceo de carga de nginx

  • Mecanismo de vigilancia de Zookeeper: notificación de cambio de datos

  • Registros de clientes Implementación de Watcher

  • ¿Cómo asegura zookeeper la consistencia secuencial de las transacciones?

  • ¿La notificación de vigilancia de Zookeeper al nodo es permanente? ¿Por qué no para siempre?

  • ¿Cómo lidiar con el tiempo de inactividad del nodo zk?

Preguntas de la entrevista de Dubbo

  • ¿Por qué usar Dubbo?

  • ¿Qué marco de comunicación se utiliza de forma predeterminada y existen alternativas?

  • ¿El servicio de bloqueo de llamadas?

  • ¿Qué registro se utiliza generalmente? ¿Hay otra opción?

  • ¿Qué marco de serialización se usa de forma predeterminada y qué más sabe?

  • ¿Cuáles son las capas del diseño de la arquitectura general de Dubbo?

...............

Preguntas de la entrevista de Elasticsearch

  • ¿Cuánto sabe sobre elasticsearch? Hable sobre la arquitectura de clúster de es de su empresa, el tamaño de los datos de índice, cuántos fragmentos y algunos métodos de ajuste.

  • Datos de índice de Elasticsearch más cómo hacer, cómo ajustar, implementar

  • Cómo elasticsearch implementa la elección maestra

  • ¿Cuáles son los métodos de optimización para la configuración de Linux cuando se implementa Elasticsearch?

  • Describir en detalle el proceso de actualización y eliminación de documentos en Elasticsearch.

  • Cuando se implementa Elasticsearch, ¿cuáles son los métodos de optimización para la configuración de Linux?

...........

Preguntas de la entrevista Redis

  • ¿Cuáles son los beneficios de usar Redis?

  • ¿Redis es de un solo proceso y de un solo subproceso?

  • ¿Cuál es el mecanismo de persistencia de Redis? ¿Pros y contras de cada uno?

  • Redis problemas anormales comunes y soluciones (avalancha, penetración...)

  • ¿Estrategia de eliminación de clave caducada de Redis?

  • ¿Por qué redis necesita poner todos los datos en la memoria?

  • ¿Cuál es el modelo de replicación maestro-esclavo del clúster de Redis?

  • ¿Cómo configurar el tiempo de caducidad y la validez permanente de la clave Redis?

preguntas de la entrevista mysql

  • Motor de almacenamiento relacionado con MySQL.

  • El principio de implementación del índice MySQL.

  • Bloqueo de base de datos MySQL.

  • Ajuste de SQL para MySQL.

  • El ID global de la subtabla y la subbase de datos de MySQL.

...............

Programación concurrente Java

  • ¿Diferencia entre hilo daemon y hilo nativo en java?

  • ¿Qué es el cambio de contexto en subprocesos múltiples?

  • ¿Cuál es el algoritmo de programación de subprocesos utilizado en Java?

  • ¿Qué es un grupo de subprocesos y por qué está en desuso en Java?

  • ¿Diferencia entre Ejecutor y Ejecutores en Java?

  • ¿Tres elementos de la programación concurrente?

  • ¿Qué es un grupo de subprocesos? ¿Cuáles son las formas de crearlo?

.........

preguntas de la entrevista de primavera

  • 1. Hable sobre su comprensión de Spring IoC.

  • 2. Hable sobre su comprensión de Spring DI.

  • 3. ¿Cuál es la diferencia entre la interfaz BeanFactory y la interfaz ApplicationContext?

  • 4. Presente las clases principales de Spring con las que está familiarizado y cuáles son sus funciones.

  • 5. Cuénteme sobre la comprensión de transacciones de Spring.

  • 6. Cuéntame sobre la implementación de transacciones de Spring.

  • 7. ¿Qué es la inyección de dependencia de Spring?

..........

preguntas de la entrevista kafka

  • Hay tres diferencias clave entre Kafka y los sistemas de mensajería MQ tradicionales

  • Habla sobre los tres mecanismos del ack de Kafka.

  • Fracaso del consumidor, ¿cómo resolver el problema de livelock?

  • En el caso de kafka distribuido (no stand-alone), cómo asegurar el consumo secuencial de mensajes

  • ¿Cómo Kafka no consume datos duplicados? Por ejemplo, las deducciones, no podemos deducir repetidamente.

....

Supongo que te gusta

Origin blog.csdn.net/csdn1234561231/article/details/131258548
Recomendado
Clasificación