Tabla de contenido
Lado técnico (23 preguntas)
Técnica de dos lados (3 bloques grandes)
Optimización del rendimiento (21 puntos)
Proyecto de combate real (34 bloques)
Punto de inspección de tecnología de dirección JAVA (15 puntos)
Preguntas que se pueden hacer en la entrevista técnica de desarrollo de JAVA (17 preguntas)
Entrevista técnica de Ali 1
- 1.¿La estructura jerárquica del flujo de IO de Java?
- 2. Indíquenos los tipos de excepción que se utilizan habitualmente.
- 3. ¿Cuál es el nombre completo de SKU y la diferencia y relación entre SKU y SPU?
- 4. Después de usar FileInputStream, sin cerrar la secuencia, ¿qué puedo hacer si quiero volver a usarlo?
- 5. ¿Diseñar un sistema de inicio de sesión distribuido?
- 6. ¿Proceso de carga por resorte?
- 7. ¿Ha escrito alguna vez transacciones AOP como Spring?
- 8. ¿Cuál es el azúcar sintáctico de try ... catch para cerrar la secuencia en Java?
- 9. ¿Cómo diseñar un sistema de picos? ¿Qué considerar?
- 10. ¿Se ha encontrado con un GC en línea? ¿Cuáles son los síntomas y cómo solucionarlo?
- 11Proceso de carga del resorte?
- 12. ¿Cuál es la diferencia entre atómico y volátil?
- 13. ¿Cuál es la diferencia entre notificar () y notificar a todos () de Thread?
- 14. ¿Qué subproceso se notifiy () despertado?
- 15. ¿Es necesario que Thread.sleep () vuelva a competir después de despertarse?
- 16. ¿Cuántas formas hay de escribir singleton? ¿Cuáles son las diferencias? ¿Qué singleton usa con frecuencia y por qué lo usa?
- 17.¿Hacer una pregunta relacionada con Thread.join ()?
- 18. ¿Cómo diseñar un modelo de datos para el sistema de módulos relacionados con los productos básicos?
- 19. ¿Escribe un ejemplo de interbloqueo de JAVA?
- 20. ¿Cómo solucionar el estancamiento?
- 21. ¿Algoritmo de recuperación de GC y principio de implementación?
- 22. ¿Estructura de almacenamiento de datos HashMap? ¿Qué debo hacer si se repite la clave? ¿Cómo solucionarlo?
- 23. El principio de realización de Spring AOP, ¿cuál es la realización subyacente?
Entrevista técnica de Ali 2
La entrevista telefónica examina principalmente 3 piezas de contenido:
Conocimientos básicos de Java, el principio de marco de código abierto, JVM, multiproceso, alta concurrencia, middleware, etc .;
Experiencia previa en proyectos, la tecnología utilizada, los problemas encontrados, cómo resolverlos, cuáles son las ganancias y el crecimiento personal;
Pasión por la tecnología (ya sea que lea habitualmente algunos libros técnicos, visite foros, escriba blogs, escriba código fuente o programas, etc.);
¿Preguntas que se pueden hacer en la entrevista técnica de desarrollo de JAVA?
Nuestra principal evaluación es el big data de alta concurrencia de la base de datos distribuida de la red nio
¿Implementación de tablas personalizadas?
¿Diseño de formulario dinámico?
¿Cómo sintonizar in-jvm (obligatorio) y el modelo de caché de jmm?
Marco RPC de uso común
nio sum io
Programación concurrente, patrón de diseño
Componente de mapa?
¿Qué vulnerabilidades en hashmap harán que se ralentice?
¿Cómo diseñar un código hash para el objeto clave del mapa hash?
Comodines genéricos, ¿en qué circunstancias?
Aspecto de back-end: ¿redis? ¿Marco distribuido dubbo (marco de código abierto de Alibaba)? ¿Patrón de diseño?
Pregunta de escenario: seckill, ¿puede enumerar el impacto de las colas comunes, los códigos de verificación y los métodos de deducción de inventario en la alta concurrencia del sistema?
Puede crear una estructura de caché de acuerdo con las necesidades reales para mejorar la velocidad de acceso al sitio web, usar ehcache, oscache y comprender Memcache de manera competente.
Comprenda el equilibrio de carga basado en el sondeo dns y sea competente en la configuración de servidores web para lograr el equilibrio de carga. El nivel de programa puede utilizar de manera integral métodos basados en hash o en módulos para lograr una carga suave.
Familiarizado con el diseño de bases de datos distribuidas y la tecnología de optimización, familiarizado con las bases de datos convencionales como mysql, oracle y SqlServer, familiarizado con hadoop hbase mangodb redis ehcache, oscache memcache. Para el procesamiento de bases de datos con una gran cantidad de datos, se utilizan métodos como la subbase de datos de la tabla, la separación de lectura y escritura de la base de datos y el establecimiento de caché para optimizar el rendimiento.
Familiarizado con Lucene, puede desarrollar grandes motores de búsqueda basados en Lucene y puede usar Lucene para mejorar y optimizar consultas de bases de datos.
Punto de inspección técnica de dirección JAVA (Suplemento):
- Dominar el lenguaje de programación Java, incluido el uso de io / nio / socket / multi threads / collection / concurrency y otras funciones;
- Familiarizado con el modelo de memoria jvm (sun hotspot e ibm j9), ajuste de recolección de basura gc y otras habilidades;
- Competente en arquitectura JVM, JMM, MVC y competente en el uso de struts2.
- Competencia en el uso de muelles, puntales, ibatis para construir sistemas de aplicación.
- Familiarizado con tecnologías front-end como Servlet, jsp y freemark.
- Competencia en el uso de axis para crear una interfaz de servicio WebService basada en el protocolo SOAP.
- Competencia en el uso de MAVEN para construir ingeniería de proyectos.
- Competencia en el uso de servicios web como tomcat.
- Familiarizado con mysql y otras bases de datos relacionales, familiarizado con la construcción de clústeres de mysql.
- Competente en el uso de tecnologías NOSQL como redis.
- Familiarizado con los protocolos tcp y http.
- Familiarizado con nginx, haproxy y otras configuraciones.
- Familiarizado con javascript, ajax y otras tecnologías.
- Familiarizado con el sistema de archivos distribuido principal FastDFS, etc.
- Familiarizado con JMS, puede utilizar ActiveMQ con soltura.
Se requiere que el líder en tecnología Java sea capaz de saber cuál es el proyecto en sí, no solo tiene habilidades técnicas profundas, sino que también tiene capacidades comerciales sólidas, tiene una buena idea y sentido comercial, y está lleno de interés y deseo por la tecnología. Don No le pida a un entrevistador que responda una pregunta. Uno, con una expresión aburrida que no puede ver ninguno de sus propios pensamientos en absoluto.
Describe cada proyecto que hiciste en la entrevista: ¿Qué hiciste? ¿Qué problemas resolviste con estas tareas? ¿Qué dificultades quedan sin resolver? ¿Cómo optimizar estas dificultades en el futuro? ¿Qué funciones se pueden lograr después de la optimización? ¿Cómo se relacionan estas funciones con el middleware y los sistemas paralelos distribuidos? ? Método de transmisión de mensajes de dirección de middleware de Java conexión larga mq conexión corta
¿Cuáles son las optimizaciones para la máquina virtual Java?
La computadora subyacente comprende el sistema de administración de memoria / minería de datos
Cómo entender la confiabilidad y la disponibilidad ~
Comparación de jsp y sever lap
Base de datos a interfaz, conversión de juego de caracteres
Pila base
Cómo analizar y monitorear la optimización de jvm cuando la taza está alta
java curb destaca detalles
Cómo distribuir documentos en caché distribuida
Partición vertical de la base de datos de migración
Cómo lidiar con la capa de aplicación de front-end de alta concurrencia
Equilibrio de carga de diseño LB
Balanceo de carga
Anti-ataque cibernético
Notificación después de la supervisión de eventos de registro de datos
El mecanismo subyacente de la realización de transacciones de bases de datos
Ataque cibernético en la entrada de espacio de cadena
El principio subyacente del marco Quartz
Sincronice los datos en la sincronización de la base de datos sin leer directamente el registro a través del motor de la base de datos
El método transversal de árbol binario, pedido anticipado, orden medio, pedido posterior y orden de capas
palabra clave volátil
sincronizado
concurrentHashMap
Bloquear estrategia de optimización
Sistema operativo
Parte del proyecto
El uso de caché, si necesita implementar un caché simple para la solicitud asincrónica ajax en el cuadro de búsqueda, ¿qué estructura se utiliza?
La caché en la memoria no siempre puede existir ¿Qué algoritmo se utiliza para eliminar periódicamente las entradas con pesos de búsqueda más bajos?
¿Cómo garantiza TCP la seguridad?
Problema del árbol rojo-negro, número B +
La mejora de HashMap en JDK1.8, si hay demasiados nodos en un depósito, la estructura de lista vinculada + matriz se convertirá en un árbol rojo-negro.
¿Si el servidor independiente utilizado en el proyecto se implementa como servidor distribuido?
Método de optimización común de MySQL, configurado como consulta lenta
Escribir a mano un patrón singleton seguro para subprocesos
Debes conocer conocimientos al ingresar a Ali:
Arreglos de algoritmos y estructuras de datos, listas enlazadas, árboles binarios, colas, pilas de varias operaciones (rendimiento, escenarios)
Búsqueda binaria y diversas variantes de búsqueda binaria
Varios algoritmos de clasificación y análisis de complejidad (clasificación rápida, fusión, montón)
Varias preguntas algorítmicas (escritas a mano)
Comprender y analizar la complejidad del tiempo y el espacio.
Planificación dinámica (escrita de ida y vuelta ...), codiciosa.
Árbol rojo-negro, árbol AVL, árbol Hash, árbol Tire, árbol B, árbol B +.
Algoritmo gráfico (menos, solo comprenda los dos algoritmos de ruta más corta)
Protocolo de modelo de capa OSI7 de red informática (capa TCP4) para cada capa
El proceso de URL a la página
HTTPhttp / https 1.0、1.1、2.0
get / post e idempotence
Relacionado con el encabezado del protocolo http
Ataques cibernéticos (CSRF, XSS)
Apretón de manos de tres vías TCP / IP, cuatro manos agitadas
Control de congestión (proceso, umbral)
Control de flujo y ventana deslizante
Comparación de TCP y UDP
División en subredes (generalmente solo disponible para pruebas escritas)
Ataque DDos
(B) Los tres principios de IO / NIO / AIO y cómo se implementa cada idioma
Netty
Sondeo de selección de kernel de Linux epoll
Índice de base de datos (principalmente mysql, Nosql tiene redis) (incluidos los métodos de clasificación y optimización, condiciones de falla, estructura subyacente)
sintaxis sql (unirse, unión, subconsulta, tener, agrupar por)
Comparación de motores (InnoDB, MyISAM)
Bloqueos de base de datos (bloqueos de fila, bloqueos de tabla, bloqueos a nivel de página, bloqueos de intención, bloqueos de lectura, bloqueos de escritura, bloqueos pesimistas, bloqueos optimistas y bloqueos SQL seleccionados)
Nivel de aislamiento, los problemas a resolver a su vez (lectura sucia, lectura no repetible, lectura fantasma)
ÁCIDO de la transacción
Árbol B, árbol B +
Optimización (explicar, consultar lento, mostrar perfil)
El paradigma de la base de datos.
Subbase de datos y subtabla, replicación maestro-esclavo, separación de lectura y escritura.
Nosql relacionado (la diferencia entre redis y memcached, si está familiarizado con redis, redis tiene mucho que preguntar)
Sistema operativo: proceso de comunicación IPC (varias formas), diferente de los hilos
Varias estrategias de SO (reemplazo de página, programación de procesos, etc., hay varios algoritmos en cada uno)
Mutex y interbloqueo relacionado
Comandos de uso común de Linux (cuando se me pregunte, daré una escena específica)
Relacionado con el kernel de Linux (select, poll, epoll)
Lenguaje de programación (aquí, solo Java): Después de pasar por mí, Java siente que la cobertura es casi la misma, pero lo siguiente todavía está dividido en categorías.
Conceptos básicos de Java (orientado a objetos, cuatro funciones, sobrecarga y reescritura, estático y final, etc.)
Colección (HashMap, ConcurrentHashMap, varias listas, es mejor mirar el código fuente)
Simultaneidad y subprocesos múltiples (grupo de subprocesos, mecanismo de bloqueo SYNC y bloqueo, comunicación de subprocesos, volátil, ThreadLocal, CyclicBarrier, paquete Atom, CountDownLatch, AQS, principio CAS, etc.)
JVM (modelo de memoria, recolección de basura GC, incluida la generación, algoritmo GC, recopilador, carga de clases y delegación principal, ajuste de JVM, pérdida de memoria y desbordamiento de memoria)
Relacionado con IO / NIO
Reflexión y proxy, excepción, relacionado con Java8, serialización
Modo de diseño (de uso común, algunos en jdk)
Web 相关 (servlet 、 cookie / sesión 、 Spring
Uso del marco y temas de la entrevista
Respuesta de referencia del marco de código abierto
Temas de la entrevista de primavera
respuesta de referencia de primavera
Temas de la entrevista de Spring Boot
respuesta de referencia de springboot
Temas de entrevistas de Spring Cloud
referencia de springcloud
Temas de la entrevista de Spring MVC
respuesta de referencia de springmvc
Temas de entrevistas de programación altamente concurrentes
Respuesta de referencia de programación de alta concurrencia
Temas de entrevistas de varios subprocesos
Respuesta de referencia de varios subprocesos
Temas de la entrevista de optimización de MyBatis
Respuesta de referencia de optimización de MyBatis
Temas de entrevistas de Nginx
Temas de entrevistas de Dubbo
A los amigos que necesiten obtener los documentos del sistema de entrevistas les puede gustar el artículo y seguir al autor, y luego hacer clic aquí para obtener todos los documentos PDF de entrevistas anteriores.