Pregunta incorrecta de la entrevista Java, conjunto 2

La diferencia entre reenviar y redireccionar

1. El número de solicitudes es diferente:
Redirija la solicitud de envío y envíe una solicitud a la nueva dirección nuevamente después de recibir la respuesta (al menos dos solicitudes). Después de
reenviar la solicitud, el salto correspondiente a la nueva dirección (solicitud una vez)

2. La barra de dirección de redireccionamiento cambiará y la barra de dirección de redireccionamiento no cambiará.

3. La redirección se puede redirigir a cualquier URL, reenviando solo las redirecciones al sitio actual.

¿Cuál es la diferencia entre el método toString () y la conversión a String?

1. El objeto del método toString () no puede ser nulo, devolverá una excepción de puntero nulo NullPointerException. La solución es utilizar el método StringValueof (). Este método juzgará el objeto antes de llamar al método toString. Si es NULL, devuelve la cadena La forma de NULL.
2. toString () es un método de descripción que tiene cualquier objeto, y la coerción a (String) es tratarlo directamente como una cadena.
Referencia específica:
¿Cuál es la diferencia entre el método toString () y la coerción a String

La diferencia entre declaración y declaración preparada

1. Primero, Statement se hereda de warpper, y luego preparestatement hereda Statement, pero el método de procesamiento de parámetros se agrega sobre la base de la sentencia, por lo que la sentencia solo puede manejar sentencias sql estáticas, y la sentencias preparada puede manejar sentencias sql dinámicas. Callablestatement hereda la declaración preparada y agrega métodos para llamar a funciones de procedimiento almacenado y salida de parámetros basados ​​en ella, de modo que los procedimientos almacenados puedan procesarse.
2. La declaración debe compilarse cada vez que se ejecuta, y la declaración preparada se puede compilar previamente y almacenarse en búfer, y los comandos compilados previamente se pueden detectar en la caché. Aunque la declaración sql aún debe analizarse, no es necesario volver a compilarlo. Up. Puede mejorar eficazmente el rendimiento del sistema.
3. El uso de la declaración preparada puede prevenir eficazmente la diferencia detallada entre la declaración de inyección SQL
y la declaración preparada.

Cuales son los metodos de String

1.length () calcula la longitud
2.equals () juzga si la cadena es la misma
3.compareto () compara la codificación de cada carácter en la cadena
4.isempty () juzga si la cadena está vacía
Método común de cadena

¿Cómo gestiona Spring las transacciones?

Spring no administra directamente las transacciones, pero proporciona una variedad de administradores de transacciones, lo que permite la administración de transacciones del marco de la plataforma proporcionado por el mecanismo de persistencia para implementar la administración de transacciones.

La gestión de transacciones de Spring incluye principalmente 3 interfaces:

El primero es el administrador de transacciones: PlatformTransactionManager. Esta interfaz es la interfaz central de la gestión de transacciones de primavera, que incluye tres métodos para confirmar la transacción, deshacer la transacción y obtener la traducción para obtener el estado de la transacción.

El segundo es TransactionDefinition, que se utiliza para definir la información de la transacción y es utilizado por el administrador de transacciones. La interfaz TransactionDefinition define su propio comportamiento de propagación y nivel de aislamiento. Incluyendo getIsolationLevel: obtenga el nivel de aislamiento; getPropagationBehavior: obtenga el comportamiento de propagación; getTimeout: obtenga el tiempo de espera; isReadOnly: cuatro métodos de solo lectura.

La tercera interfaz es translationStatus para obtener el estado de ejecución de la transacción. Principalmente hasSavepoint (): devuelve si la transacción contiene un punto de guardado; isCompleted (): devuelve si la transacción se ha completado, es decir, si se ha confirmado o revertido; isNewTransaction (): determina si la transacción actual es una nueva transacción Estos tres métodos.

Nivel de aislamiento de transacciones

Predeterminado : este es el nivel de aislamiento predeterminado de PlatfromTransactionManager y se utiliza el nivel de aislamiento de transacciones predeterminado de la base de datos. Los otros cuatro corresponden al nivel de aislamiento de JDBC.
Lectura no confirmada : este es el nivel de aislamiento más bajo de la transacción, lo que permite que otra transacción vea los datos no confirmados de esta transacción. Este nivel de aislamiento producirá lecturas sucias, lecturas no repetibles y lecturas fantasma.
Lectura confirmada : se garantiza que los datos modificados por una transacción puedan ser leídos por otra transacción después de que se hayan confirmado, y que otra transacción no pueda leer los datos no confirmados de la transacción. Este nivel de aislamiento de transacciones puede evitar lecturas sucias, pero pueden producirse lecturas no repetibles y lecturas fantasmas.
Lectura repetible : este nivel de aislamiento de transacciones puede evitar lecturas sucias y lecturas no repetibles, pero pueden producirse lecturas fantasmas. Además de garantizar que una transacción no pueda leer los datos no confirmados de otra transacción, también garantiza una lectura no repetible.
Serialización : este es el nivel de aislamiento de transacciones más caro pero más confiable, y las transacciones se procesan como ejecución secuencial. Además de prevenir lecturas sucias y lecturas no repetibles, también se evitan las lecturas fantasma.

Parámetros de propagación

Utilice setInt (1, "st") para pasar parámetros de tipo Int
setString (1, "st") para pasar parámetros de tipo String

Cómo pasar valores entre modelo y vista

Permítanme hablar primero sobre la arquitectura de tres niveles de SpringMVC: la
capa de modelo es responsable de expresar las reglas comerciales y la realización de varias funciones (como iniciar sesión, agregar y eliminar funciones). El modelo está implementado con JavaBean.Inserte la descripción de la imagen aquí

La capa de vista es responsable de la visualización de la página; interacción con el usuario. Contiene varias formas. Las tecnologías utilizadas para realizar la vista incluyen tecnologías front-end como html / css / jsp / js.

La capa del controlador es responsable de la correspondencia uno a uno entre la vista y el modelo. Es equivalente a un modelo de distribuidor. La denominada distribución es: ①Recibir una solicitud y redirigir (reenviar, redirigir) la solicitud al modelo para su procesamiento. ② Una vez procesado el modelo, pasa por el controlador y vuelve a la solicitud en la vista. Se recomienda utilizar Servlet para implementar el controlador.

Cómo transmitir información

La arquitectura de tres niveles se divide en la capa de presentación, la capa de lógica empresarial y la capa de acceso a datos. La
capa de presentación es principalmente la interfaz de interfaz de usuario presentada al usuario, principalmente la capa de vista.
La capa de lógica empresarial es la capa de servicio, que es principalmente responsable de la realización de cierta lógica empresarial, principalmente para llamar al resultado de la capa de acceso a datos y conectar la capa dao con la vista frontal. Otra función es juzgar y verificar los datos antes de llamar a la información de la base de datos.
La capa de acceso a datos es la operación de agregar, eliminar, modificar y verificar la base de datos, principalmente en la capa dao. El Javabean de la capa modelo incluye la clase Java correspondiente a la tabla de datos, que almacena las propiedades privadas del nombre de la columna de la base de datos. nombre del atributo, y establece el método get y set, la capa dao es agregar, eliminar, modificar y verificar estos Javabeans.
Para pasar información, el front-end recibe los datos primero y luego envía la solicitud al contenedor de servlet. Después de que el contenedor de servlet recibe la solicitud, crea la clase de entidad de servlet y llama a los métodos servletRequest y servletResponse (aquí podemos anular un clase de servlet para el procesamiento correspondiente) Después de que la capa de controlador acepta la solicitud, la solicitud se pasa a la capa de servicio (capa de lógica de negocios), la capa de lógica de negocios juzga para encontrar la operación de capa de dao correspondiente y regresa al controlador después de agregar, eliminar , modificando y verificando la información de la base de datos en la capa dao, y el controlador regresa a la capa de vista para responder al usuario.

Qué es una transacción

Una transacción es la unidad básica de control de concurrencia. Las cuatro características de una transacción son lo que llamamos
atomicidad ACID : una transacción se envía con éxito o todo falla y se revierte.
Consistencia : La ejecución de la transacción no puede destruir la integridad y la consistencia de la base de datos
. : en un entorno concurrente, transacciones simultáneas están aislados el uno del otro, y una transacción no se verá afectado por otra transacción concurrente.
Persistencia : una vez que se confirma la transacción, los cambios en el estado de los datos correspondientes en la base de datos se ser guardado permanentemente en la base de datos.

Cómo escribir transacciones en Java

Utilice @Transactional anotación de
escritura de transacciones de Java

Cómo escribir un servlet

Primero, debe escribir una clase de servlet que herede HttpServlet
y luego implementar los métodos doPost y doGet.
Configure xml, configure servlet-name y url-pattern en la etiqueta servletMapping, y
finalmente configure la ruta de inicio del proyecto.

Supongo que te gusta

Origin blog.csdn.net/gsy_csdn1/article/details/114903729
Recomendado
Clasificación