Proceso de entrevista de reclutamiento de otoño de Doosan
? ②, 9. ¿Habla sobre tu comprensión personal y las diferencias entre ellos?
(Por cierto, hablemos de los diferentes métodos de almacenamiento en la JVM)
2. ¿Cuál es la diferencia entre clases e interfaces abstractas? ¿Cuál es la diferencia entre clase abstracta y clase ordinaria? ¿Hablar de su comprensión personal?
3. ¿De qué clases heredan los flujos de caracteres y los flujos de bytes? ¿Hablar de la diferencia entre ellos?
4. ¿Cuáles son los métodos para crear objetos?
5. (Olvidé la pregunta)
6. Hay dos subprocesos T1 y T2 que terminan de ejecutar T1 o más de 10 segundos después de que se ejecuta T1 (independientemente de si T1 se ejecuta en esta vez) Completado) se está ejecutando, ¿cómo lograrlo?
Respuesta: (Examinando principalmente el método t.join() usando subprocesos múltiples)
7. (Una pregunta de consulta de conexión SQL compleja, un poco difícil, y la pregunta es una un poco largo. No entraré en detalles)
8. Utilice HTML y JavaScript para implementar una selección. Cuando haga clic para seleccionar la opción "admin", aparecerá un cuadro de diálogo después de la selección. Si se confirma, el contenido seleccionado se mostrará como "admin". De lo contrario, ¿restaurar el contenido del paso anterior?
9. Semi-inversión de la versión de cadena, como: "12345" - & gt;
10. Con respecto a la clasificación numérica y los algoritmos de clasificación, escribí clasificación rápida y clasificación por cubos.
11....(no recuerdo algunos con claridad).
Resumen: En términos generales, las preguntas de la prueba escrita son relativamente simples, se centran en los conocimientos básicos y luego esperan un rato antes de concertar la siguiente entrevista.
1. Autopresentación
2. Presenta los proyectos que has realizado ¿Qué hiciste como pasante en iFlytek?
3. ¿Conoces la colección? ¿Presentamos una colección familiar?
Respuesta: Comencé con HashMap y ConcurrentHashmap, hablando principalmente sobre los principios de seguridad de subprocesos y los principios de implementación subyacentes, y cómo diseñar blablala en la parte inferior de varias operaciones...
4. Hablemos de las diferencias entre HashMap, HashTable y ConcurrentHashmap.
Respuesta: Concéntrese en el principio de implementación de HashTable y haga comparaciones...
5. Cuénteme sobre su comprensión de ArrayList y LinkedList.
Respuesta: Primero analice la complejidad temporal de sus diversas operaciones, luego hable sobre los principios de implementación subyacentes específicos y luego concéntrese en la extensión de ArrayList.
6. Suponiendo que se atraviesa ArrayList, ¿cómo realizar la operación de eliminación al atravesarlo?
Respuesta: ① Utilice un iterador para eliminar el objeto especificado: Iterator itr = list.iterator();? for( Objct obj : list ){ itr.remove(obj)} (principalmente examine la iteración si es se usa un iterador, si se usa una versión mejorada del bucle for para buscar directamente el objeto de la lista, la operación remove() hará que el iterador "falle rápidamente" y arroje una excepción si se usa un iterador, si se usa un iterador mejorado); La versión del bucle for se usa para recuperar directamente el objeto de la lista. Realizar la operación remove() hará que el iterador "falle rápidamente" y genere una excepción ② Use una versión no mejorada del bucle for y use la lista directamente; para eliminar (este método causará excepciones de datos y no se recomienda)
7. Si puede usar espacio adicional, no necesita pensar demasiado en cómo hacerlo sin usar estos métodos.
8. ¿Cuéntame sobre la parte más impresionante del proyecto?
Respuesta: (Mi proyecto es relativamente nuevo, hablaré sobre optimización de SQL, redis y sus escenarios de uso, así como algunos negocios)
9. ¿Por qué se usa redis en el ¿anuncio? ?
10. La primavera se utiliza en el proyecto. Cuéntanos qué entiendes sobre la primavera.
Respuesta: (Habla sobre tirar dados, habla sobre acoplamiento, COI, principios de AOP y escenarios de aplicación)
11. ¿Has visto el código fuente de Spring?
Respuesta: Hablemos del código fuente de AOP, centrándonos en InnovationHandler. También hablamos de las formas jdk y cglib de implementar proxy dinámico en AOP y comparamos sus ventajas y desventajas.
12. ¿Dónde se refleja el desacoplamiento de Spring que mencionaste anteriormente en la combinación de marcos?
Respuesta: La inyección de dependencia del COI se ha introducido antes, permítanme hablar sobre los beneficios de hacerlo.
13. ¿Cómo entiendes cómo se implementa el COI?
Respuesta: En términos generales, a través de la configuración, el contenedor utiliza el modelo de fábrica para "producir" objetos automáticamente a través de la configuración y la reflexión, y luego los ensambla en el lugar especificado blabla...
14. Mencionaste las anotaciones arriba, entonces, ¿qué son las anotaciones del COI? ¿Cuál es la diferencia entre ellos?
Respuesta: Hablando principalmente de @autowire y @Resouce. El primero busca objetos por tipo de forma predeterminada, y el segundo busca objetos por nombre. Si no se encuentra el nombre, busca objetos por tipo. .
14. Buscar objetos por nombre, buscar objetos por tipo, buscar objetos por nombre, buscar objetos por tipo, buscar objetos por nombre, buscar objetos por tipo.
15. Ahora, si hay una interfaz con dos clases de implementación y la inyectas según autowire, no se encontrará por tipo. ¿Qué debes hacer?
Respuesta: (Debe ser una combinación de byname y @Qualifier("xxx"))
¿No tienes esto? (Esta pregunta es un poco vaga)
16. Dijiste anteriormente que existen varios métodos de inyección, entonces, ¿cuáles son los métodos para inyectar COI?
17. Mybatis e hibernate se utilizan en su proyecto. ¿Cuál es la diferencia entre los dos?
Respuesta: Mybatis no tiene una clase dao, las consultas SQL se registran en archivos xml e hibernate es una clase completa... (No he estudiado el marco ORM durante mucho tiempo, y es necesario compensarlo (hacer clic)
18. ¿El objeto contenedor en Spring es una instancia única o múltiples?
19. ¿Qué problemas pueden surgir con instancias únicas y múltiples de objetos?
20. ¿Un servlet es una instancia única o múltiples instancias? ¿Conducirá a la seguridad del hilo? ¿Cómo lidiar con la seguridad de los hilos?
21. ¿La acción de struts2 es una instancia única o múltiples instancias de forma predeterminada?
(Las tres preguntas anteriores son relativamente confusas)
22. ¿Cómo y dónde se almacenan los parámetros de acción pasados desde el front-end por SpringMVC o struts2?
Respuesta: (La acción de SpringMVC es singleton de forma predeterminada, lo que causará seguridad para los subprocesos, por lo que es mejor no almacenarla en variables de atributos y almacenar parámetros formales para garantizar la seguridad de los subprocesos, mientras que la acción de struts2 es de múltiples casos de forma predeterminada, por lo que se puede almacenar en variables de atributos)