Los puntos básicos de conocimiento de la entrevista de Java: la última versión de la colección de preguntas de la entrevista de Java

prefacio

El artículo anterior introdujo algunas preguntas de entrevista comunes en entrevistas de Java y proporcionó las respuestas de referencia correspondientes, que incluyen principalmente preguntas de subprocesos múltiples en Java SE, algunas preguntas de entrevista comunes en reflexión, copia de objetos y preguntas comunes en Java Web. Este artículo continúa presentándole las preguntas comunes de las entrevistas en Java. Lo primero que le presentaré son los problemas anormales comunes en Java:

1. Anormal

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

• throws: es la declaración de que se puede lanzar una excepción.

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

• final: Es un modificador, si se modifica la clase no se puede heredar la clase, si se modifica el método y la variable significa que no se puede cambiar el método y la variable y solo se puede usar.

• finalmente: es la última parte de try{} catch{} finalmente{}, lo que significa que se ejecutará pase lo que pase. La parte final se puede omitir, pero si la parte final existe, el código en final será ejecutado.

• finalizar: Es un método de la clase Object, y este método del objeto reclamado será llamado cuando se ejecute el recolector de basura.

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

try-catch-finally Se pueden omitir tanto catch como finalmente, pero no al mismo tiempo, es decir, cuando hay un try, debe ir seguido de un catch o finalmente.

4. En try-catch-finally, si hay un retorno en la captura, ¿finalmente todavía se ejecutará?

finalmente se ejecutará, incluso si se trata de return in catch, el return in catch esperará hasta que se ejecute el código final antes de que se ejecute.

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

• Excepción de puntero nulo NullPointerException

• ClassNotFoundException la clase especificada no existe

• Cadena NumberFormatException a excepción de número

• Subíndice de matriz IndexOutOfBoundsException excepción fuera de los límites

• Excepción de conversión de tipo de datos ClassCastException

• FileNotFoundException archivo no encontrado excepción

• El método NoSuchMethodException no existe excepción

• IOException excepción de E/S

• Excepción de socket SocketException

2. Red

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

301: redirección permanente.

302: Redirección temporal.

Su diferencia es:

301 es más beneficioso para la optimización de motores de búsqueda (SEO);

302 Existe el riesgo de que se le solicite la intercepción de la red.

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

reenviar es reenviar y redirigir es redirigir:

• La visualización de URL en la barra de direcciones: la URL de reenvío no cambiará, pero la URL de redirección cambiará;

• Uso compartido de datos: el reenvío puede compartir los datos de la solicitud, pero el redireccionamiento no;

• Eficiencia: el reenvío es más eficiente que el redireccionamiento.

3. Describa brevemente la diferencia entre tcp y udp.

tcp y udp son protocolos en la capa de transporte del modelo OSI. tcp proporciona un transporte de comunicación confiable, mientras que udp se usa a menudo para permitir la transmisión y el control detallado del transporte de comunicación de la aplicación.

La diferencia entre los dos es más o menos la siguiente:

• tcp está orientado a conexión, udp no está orientado a conexión, es decir, no se requiere conexión antes de enviar datos;

• tcp brinda un servicio confiable (transferencia de datos), udp no puede garantizarlo;

• tcp está orientado a bytes, udp está orientado a paquetes;

• la transmisión de datos tcp es lenta, la transmisión de datos udp es rápida;

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

Si se utilizan dos protocolos de enlace, la conexión se establecerá siempre que el servidor envíe un paquete de confirmación, pero dado que el cliente no responde a la solicitud del servidor en este momento, el servidor siempre esperará al cliente en este momento, por lo que el servidor se desperdiciarán ciertos recursos. Si se utiliza el protocolo de enlace de tres vías y el servidor no recibe una reconfirmación del cliente, sabrá que el cliente no solicita establecer una solicitud y los recursos del servidor no se desperdiciarán.

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

El paquete adhesivo tcp puede ocurrir en el extremo de envío o en el extremo receptor. Veamos las causas de los paquetes adhesivos en ambos extremos:

• Paquetes adhesivos en el remitente: el remitente debe esperar a que el búfer esté lleno antes de enviarlos, lo que genera paquetes adhesivos;

• Paquetes pegajosos en el receptor: el receptor no recibe los paquetes almacenados en el búfer a tiempo, lo que da como resultado que se reciban varios paquetes.

6. ¿Cuáles son las siete capas del modelo OSI?

• Capa física: use el medio de transmisión para proporcionar una conexión física para la capa de enlace de datos y realice la transmisión transparente del flujo de bits.

• Capa de Enlace de Datos: Encargada de establecer y administrar enlaces entre nodos.

• Capa de red: a través del algoritmo de enrutamiento, seleccione la ruta más adecuada para que el mensaje o paquete pase por la subred de comunicación.

• Capa de transporte: Proporcione a los usuarios un control confiable de flujo y error de extremo a extremo para garantizar la transmisión correcta de los mensajes.

• Capa de sesión: proporciona métodos para establecer y utilizar conexiones a las capas de presentación de dos entidades.

• Capa de presentación: se ocupa de la representación de la información del usuario, como codificación, conversión de formato de datos, cifrado y descifrado, etc.

• Capa de aplicación: proporcione servicios directamente a los usuarios y complete diversas tareas que los usuarios desean realizar en la red.

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

• Las solicitudes de obtención son almacenadas activamente en caché por el navegador, pero las solicitudes de publicación no.

• Los parámetros de obtención de pases tienen un límite de tamaño, pero los de publicación no.

• La transmisión de parámetros de publicación es más segura. Los parámetros de obtención se limitarán a la url en texto claro, pero los parámetros de publicación no.

8. ¿Cómo lograr cross-domain?

Hay varias opciones para implementar cross-domain:

• El servidor ejecuta la configuración de dominios cruzados CORS igual a *;

• Use la anotación @CrossOrigin para ejecutar cross-origin en una sola interfaz;

• Usar jsonp entre dominios;

9. Cuéntame sobre el principio de implementación de JSONP.

jsonp: JSON con Padding, que utiliza la conexión src de la etiqueta del script para acceder a las características de diferentes fuentes, y carga la "función JS" devuelta por el control remoto para ejecutar.

3. patrón de diseño

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

• Modo singleton: Garantizado para ser creado una vez, ahorrando sobrecarga del sistema.

• Patrón de fábrica (fábrica simple, fábrica abstracta) : código desacoplado.

Patrón de observador : define dependencias de uno a muchos entre objetos, de modo que cuando un objeto cambia, todos sus dependientes serán notificados y actualizados automáticamente.

Modo de apariencia : proporciona una interfaz unificada para acceder a un grupo de interfaces en el subsistema.La apariencia define una interfaz de alto nivel para que el subsistema sea más fácil de usar.

Modo de método de plantilla : define el esqueleto de un algoritmo y transfiere algunos pasos a las subclases.El método de plantilla permite que las subclases redefinan los pasos del algoritmo sin cambiar la estructura del algoritmo.

Modo de estado : permite que un objeto cambie su comportamiento cuando cambia su estado interno y el objeto parece haber modificado su clase.

2. ¿Cuál es la diferencia entre una fábrica simple y una fábrica abstracta?

Fábrica simple : Se utiliza para producir cualquier producto en la misma estructura jerárquica, y no puede hacer nada para agregar nuevos productos.

Método de fábrica : se utiliza para producir productos fijos en la misma estructura jerárquica y admite la adición de productos arbitrarios.

Fábrica abstracta : se utiliza para producir todos los productos de diferentes familias de productos y no tiene poder para agregar nuevos productos; admite la adición de familias de productos.

四、Primavera/Primavera MVC

1. ¿Por qué usar resorte?

• Spring proporciona tecnología ioc, y el contenedor lo ayudará a administrar objetos dependientes, de modo que no necesite crear y administrar objetos dependientes usted mismo, y es más fácil lograr el desacoplamiento del programa.

• Spring brinda soporte para transacciones, lo que hace que las operaciones de transacciones sean más convenientes.

• Spring proporciona programación orientada a segmentos, lo que facilita el manejo de ciertos tipos de problemas.

• Integración de framework más conveniente, spring puede integrar fácilmente otros frameworks, como MyBatis, hibernate, etc.

2. Explique ¿qué es aop?

AOP es una tecnología para la programación orientada a aspectos, que realiza el mantenimiento unificado de las funciones del programa a través de la precompilación y el proxy dinámico en tiempo de ejecución.

En pocas palabras, es la idea de programación del procesamiento unificado de una determinada "cara de corte" (categoría), como el procesamiento unificado de registros y excepciones.

3. Explique ¿Qué es el COI?

ioc: Inversion of Control (Chino: Inversion of Control) es el núcleo de spring.Para el framework spring, spring es responsable de controlar el ciclo de vida de los objetos y la relación entre los objetos.

En términos simples, el control se refiere al control del objeto actual sobre los miembros internos; la inversión de control significa que este control no es administrado por el objeto actual, sino por otros (clases, contenedores de terceros) para administrar.

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

• spring core: la parte más básica del marco, que proporciona funciones de inyección de dependencia e ioc.

• contexto de primavera: el paquete de contexto construido sobre la base del paquete principal proporciona un método de acceso a objetos de estilo de marco.

• spring dao: el objeto de acceso a datos proporciona una capa de abstracción para JDBC.

• spring aop: proporciona una implementación de programación orientada a aspectos, lo que le permite personalizar interceptores, puntos de corte, etc.

• Spring Web: proporciona funciones integradas para el desarrollo web, como la carga de archivos, la inicialización del contenedor iOC mediante escuchas de servlet y applicationContext para Web.

• spring Web mvc: El paquete mvc de spring proporciona la implementación de Model-View-Controller (MVC) para aplicaciones web.

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

• inyección de propiedad de setter

• Inyección de constructor

• Inyección de anotaciones

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

El bean en Spring tiene por defecto el modo singleton, y Spring Framework no realiza el procesamiento de encapsulación de subprocesos múltiples en el bean singleton.

De hecho, la mayoría de las veces, los beans de primavera no tienen estado (como la clase dao), por lo que, hasta cierto punto, los beans también son seguros, pero si los beans tienen estado (como los objetos del modelo de vista), los desarrolladores deben garantizar la seguridad de los subprocesos al ellos mismos Sí, la forma más fácil es cambiar el alcance del bean, cambiar el "singleton" a "prototipo", de modo que el bean solicitado sea equivalente a un bean nuevo, por lo que se puede garantizar la seguridad de subprocesos.

• Tener estado es tener capacidades de almacenamiento de datos.

• Sin estado significa que no se guardan datos.

7. ¿Cuántos bean scopes admite Spring?

Spring admite 5 ámbitos, de la siguiente manera:

• singleton: solo hay una instancia de bean en el contenedor spring ioc, y el bean existe en modo singleton, que es el valor predeterminado del sistema;

• prototipo: se creará una nueva instancia cada vez que se llame a un bean desde el contenedor, es decir, cada getBean equivale a realizar una operación de nuevo Bean;

• Alcance en el entorno web:

• solicitud: se crea un bean para cada solicitud http;

• sesión: la misma sesión http comparte una instancia de bean;

• sesión global: para contenedor de portlet, debido a que cada portlet tiene una sesión separada, globalsession proporciona una sesión http global.

Nota: El uso del alcance de prototipo requiere una reflexión cuidadosa, porque la creación y destrucción frecuente de beans generará una gran sobrecarga de rendimiento.

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

• no: el valor predeterminado, lo que significa que no hay conexión automática y se deben usar referencias de bean explícitas para la conexión.

• byName: Inyecta dependencias de objetos en base al nombre del bean.

• byType: Inyecta dependencias de objetos en función del tipo.

• Constructor: para inyectar dependencias a través del constructor, es necesario establecer una gran cantidad de parámetros.

• detección automática: el contenedor se autoconecta primero a través del constructor o, si no se conecta automáticamente, a través de byType.

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

• Transacción declarativa: hay dos formas de realizar una transacción declarativa, según el archivo de configuración xml y la anotación (agregue la anotación @Transaction a la clase).

• Modo codificado: proporciona un formulario codificado para administrar y mantener transacciones.

10. Cuénteme sobre el aislamiento de transacciones de primavera.

Spring tiene cinco niveles de aislamiento, el valor predeterminado es: ISOLATION_DEFAULT (usando la configuración de la base de datos), los otros cuatro niveles de aislamiento son consistentes con el nivel de aislamiento de la base de datos:

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

• Front Controller DispatcherServlet.

• Controlador de mapeo HandlerMapping.

• Controlador del procesador.

• Modelo y Vista ModelAndView.

• Ver resolución ViewResolver.

13. ¿Cuál es la función de @RequestMapping?

Asignar solicitudes http a clases/métodos correspondientes

14. ¿Cuál es la función de @Autowired?

@Autowired Puede anotar variables, métodos y constructores de miembros de clase, completar el trabajo de ensamblaje automático y eliminar el método set/get mediante el uso de @Autowired.

Ejemplos Spring Boot/Spring Cloud

1. ¿Qué es la bota de resorte?

Spring Boot sirve Spring y se utiliza para simplificar la construcción inicial y el proceso de desarrollo de nuevas aplicaciones de resorte.

2. ¿Por qué usar bota de resorte?

• Configuración sencilla

• Operar de forma independiente

• Autocableado

• Sin generación de código y configuración xml

• Proporciona monitoreo de aplicaciones

• fácil de usar

• Mejorar la eficiencia del desarrollo

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

Dos archivos de configuración de spring boot core:

• bootstrap (.yml o .properties): boostrap lo carga el applicationContext principal, se carga antes de applicationton y las propiedades en boostrap no se pueden sobrescribir;

• aplicación (.yml o .properties): para la configuración automática de proyectos Spring Boot.

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

Los archivos de configuración tienen formato .properties y formato .yml, la principal diferencia entre ellos es el estilo de caligrafía.

Las propiedades se configuran de la siguiente manera:

primavera. ConejoMQ. puerto=56721

yml se configura de la siguiente manera:

Nota: el formato yml no admite la importación de anotaciones @PropertySource.

5. ¿Cuáles son las formas de Spring Boot para lograr un despliegue en caliente?

• Utilice devtools para iniciar la implementación en caliente, agregue la biblioteca devtools y establezca spring.devtools.reinstart.enabled en true en el archivo de configuración;

• Con el editor de Intellij Idea, marque Compilación automática o Recompilación manual.

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

El nombre completo de jpa es API de persistencia de Java, que es la especificación de la interfaz de persistencia de Java, e hibernate pertenece a la implementación específica de jpa.

7. ¿Qué es la nube de primavera?

Spring cloud es una colección ordenada de una serie de marcos. Utiliza la comodidad de desarrollo de Spring Boot para simplificar sutilmente el desarrollo de la infraestructura del sistema distribuido, como el registro de detección de servicios, el centro de configuración, el bus de mensajes, el balanceo de carga, el disyuntor, el monitoreo de datos, etc., se puede hacer con el estilo de desarrollo de Spring Boot para lanzamiento e implementación con un solo clic.

8. ¿Cuál es la función del disyuntor de nube de resorte?

En una arquitectura distribuida, la función del modo de interruptor automático es similar: cuando falla una unidad de servicio (similar a un cortocircuito en un aparato eléctrico), se devuelve una respuesta de error a la persona que llama a través del monitoreo de fallas del interruptor automático (similar a un cortocircuito en un aparato eléctrico). a un fusible quemado), en lugar de una larga espera. De esta forma, el hilo no estará ocupado por mucho tiempo debido a la llamada del servicio defectuoso y no se liberará, evitando la propagación de fallas en el sistema distribuido.

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

• Eureka: Registro de servicios para el descubrimiento.

• Fingir: basado en el mecanismo de proxy dinámico, de acuerdo con la anotación y la máquina seleccionada, empalme la dirección URL de la solicitud e inicie la solicitud.

• Cinta: para lograr el equilibrio de carga, seleccione una de varias máquinas para un servicio.

• Hystrix: proporciona grupos de subprocesos, diferentes servicios usan diferentes grupos de subprocesos, realiza el aislamiento de diferentes llamadas de servicio y evita el problema de la avalancha de servicios.

• Zuul: gestión de la puerta de enlace, la puerta de enlace Zuul reenvía la solicitud al servicio correspondiente.

Resumir

El artículo anterior introdujo algunas preguntas de entrevista comunes en entrevistas de Java y proporcionó las respuestas de referencia correspondientes, que incluyen principalmente preguntas de subprocesos múltiples en Java SE, algunas preguntas de entrevista comunes en reflexión, copia de objetos y preguntas comunes en Java Web. Este artículo presenta las excepciones en Java SE, las preguntas de entrevista comunes en la red y también presenta las preguntas de entrevista correspondientes a los patrones de diseño. Finalmente, introduje las preguntas de entrevista comunes en el marco popular, que incluye principalmente preguntas de entrevista relacionadas con spring/spring mvc y spring boot y spring cloud. Espero que todos puedan dominarlo sobre la base de la comprensión. Esta es la base y el núcleo de Java. Solo cuando tenemos una comprensión sólida de estos conocimientos básicos podemos aplicarlos mejor en el proceso de desarrollo real. En resumen, ya sea una entrevista o un principiante, este artículo será más o menos útil para los colegas en la dirección de Java. Espero que estudie mucho, trabaje duro, viva y aprenda, y mejore constantemente sus habilidades. Al mismo tiempo, ¡también espero que los amigos que buscan trabajo puedan encontrar un trabajo satisfactorio! ! ! !

Supongo que te gusta

Origin blog.csdn.net/std7879/article/details/127743315
Recomendado
Clasificación