2020 Destacados 30 preguntas de la entrevista

1, características orientadas a objetos describen tres, cinco principios.
En la que:
1. Paquete: un paquete es a detalles de implementación ocultar y propiedades del objeto, abierto sólo a la interfaz pública, un programa de control de leer y modificar las propiedades del nivel de acceso, los datos abstractos y de comportamiento obtenidos (o función) se combinan para formar una orgánico conjunto, es decir, los datos de origen y los datos operativos combinados orgánicamente para formar una "clase", los datos y funciones que son miembros de la clase.
2. Herencia: mecanismo de herencia permite la creación de clases de nivel jerárquico. La herencia es la subclase hereda las características y comportamiento de la clase padre, por lo que el objeto subclase (instancia) campos y métodos de instancia que tiene un métodos de la clase padre o subclase hereda de las clases padre, subclases que tienen el mismo comportamiento clase padre.
3. Polimorfismo: polimorfismo que tiene una pluralidad de capacidad o forma de diferentes formas de la misma conducta. Se refiere a un método de las mismas instancias de clases (objetos) tienen diferentes formas en diferentes situaciones. Del polimorfismo de manera que los objetos que tienen diferentes estructuras internas pueden compartir la misma interfaz externa. Esto significa que, aunque diferentes acciones específicas para diferentes objetos, sino a través de una clase común, ellos (las operaciones) se puede invocar de la misma manera.
ventajas polimórficos son: acoplamiento eliminación, de forma alternativa y la expansión de interfaces, la flexibilidad, la simplicidad
polimórfica establecimiento add: la herencia, reescribir, las referencias a las subclases de la clase padre


2, la diferencia entre clases abstractas e interfaces, y diferentes escenarios de aplicación.
clase Resumen:
1. Sólo los métodos abstractos definidos en una clase abstracta, un método abstracto de la clase abstracta y debe ser (clases y métodos pueden ser descritos, la variable puede no ser descrita por la palabra clave extracto modificado
2. objetos clase abstracta no se pueden crear (instanciado)
3. constructores clase abstracta, métodos no abstractos definidos
4. final, privado, estático con no abstractos
interfaces: 1 se define con la palabra clave interfaz
2. la interfaz es la interfaz proporcionada por las reglas externas son función. interfaz de emergencia prolongada reduce el acoplamiento.
3. JDK8 en el ambiente, los métodos de interfaz ya no son solamente un método abstracto, que puede tener métodos estáticos método predeterminado.
variables se declaran públicamente de forma automática 4. static const!
diferencia : 1:. clases abstractas pueden ser heredados, pero sólo herencia simple
. interfaces de necesitan ser implementados, y puede ser más consiguen
2: clase abstracta puede definir métodos no abstractos, subclases heredan utilizados directamente
interfaces son métodos abstractos requerido para lograr subclase.
3: el uso de la clase abstracta es una relación
interfaces utilizadas como una relación.
4: los miembros de los modificadores de clase abstracta se pueden personalizar.
recoger Los miembros de la boca modificador es fijo. Todos son públicos.


3, es igual a la diferencia entre == y
determina si el valor == referencias de métodos apuntan al mismo objetivo
equals () será cubierto en la clase, y el tipo del contenido cuando dos objetos separados coinciden devuelve un valor verdadero.


4, por favor HashMap brevemente difiere CurrentHashMap, y decir la diferencia entre una y respectivamente jdk.1.7 jdk1.8

JDK1.7: ConcurrentHashMap matriz de segmento es una matriz de estructuras y estructuras HashEntry. Segmento realidad heredado de la cerradura reentrante (ReentrantLock), desempeñan un papel en la cerradura de ConcurrentHashMap en; HashEntry pares de valores clave se utilizan para almacenar datos. Un ConcurrentHashMap contiene una serie de segmentos, cada segmento contiene una matriz HashEntry, que llamamos tabla, cada HashEntry es un elemento de una estructura de lista enlazada. Inicialización tiene tres parámetros: tamaño initialCapacity: La capacidad inicial por defecto, 16. loadFactor, factor de expansión, 0,75 el valor predeterminado, cuando el número de elementos de memoria es mayor que un segmento initialCapacity * loadFactor, la voluntad Segmento vez de expansión. concurrencyLevel concurrencia, por defecto 16. Concurrencia simultánea puede apreciar que cuando la operación de actualización del programa no produce el número máximo de hilos ConccurentHashMap contención de bloqueo, es decir, el número de segmentos en el ConcurrentHashMap de bloqueo, es decir, segmento [] longitud de la matriz. Si el grado de concurrencia es demasiado pequeña, causará graves problemas de contención de bloqueo; si se fija demasiado alto grado de concurrencia, que se encuentra inicialmente dentro de la misma visita del segmento se extenderá a diferentes Segmento de, la CPU caché tasa de éxito se reducirá, provocando el desempeño del programa.

JDK1.8: Segmento han abandonado el concepto de directamente vinculado estructura de la lista de datos de matriz Nodo + + árbol rojo-negro para implementar el control de concurrencia y el uso de Synchronized CAS opera, se optimiza y HashMap thread-safe. En JDK1.8 puede ver la estructura de datos del segmento, pero ha simplificado la propiedad, sólo por compatibilidad con versiones anteriores.

JDK1.8 cancelado array segmento, directamente Guardar tabla de datos, la granularidad de bloqueo es más pequeña, reduciendo la probabilidad de colisiones de concurrencia;
cuando JDK1.8 almacenamiento de datos toma la forma de una lista enlazada + árbol rojo-negro, la complejidad de tiempo de la forma pura de la lista O (n), en comparación con O rojo-negro árbol (log n), un gran rendimiento;
lograr la reducción de JDK1.8 granularidad de bloqueo, JDK1.7 granularidad de bloqueo versión se basa en el segmento, que comprende una pluralidad de HashEntry, y JDK1. 8 granularidad de bloqueo es HashEntry (nodo de cabeza);
versión JDK1.8 de la estructura de datos más fácil, de modo que la operación es más clara y suave, se ha utilizado para sincronizar sincronizado, debido al tamaño de partícula reducido, el aumento de complejidad de la implementación;
JDK1. 8 para optimizar el uso de la lista de árbol rojo-negro, la eficiencia de recorrido de árbol rojo-negro es muy rápido;
JDK1.8 lugar de utilizar el ReentrantLock cerradura de bloqueo de reentrada sincronizado integrado.


5, por favor GC brevemente (recolección de basura) de los cuatro algoritmos.
① recuento de referencia
cuando una referencia a un objeto aumenta, el recuento de referencia + 1. Cuando una reducción, número de referencia 1. Cuando la recolección de basura, el reciclaje único número de referencia es 0 objetos. Referirse a la otra cara hay un método solución es relativamente antigua, casi en desuso

② Clear + marca de
travesía etiquetada objeto de la raíz, y luego recorrer toda la pila, retire el objeto sin marcar.
Desventajas: la eficiencia operativa no es muy alta, lo que resulta en una fragmentación de la memoria, es necesario suspender la ejecución de la aplicación

③ copiar
la memoria en dos regiones (región A y la región B), una región vacía (región A), otra región (región B) sobre el objeto. Cuando la recolección de basura, la región objetivo de referencia b también se copia en la región vacía (región a) para ir, y la región actual (región b) de vaciado. Repita este
inconveniente: cuando se copian en una región, al mismo tiempo consolidación de la memoria, sin la fragmentación de memoria. Pero requiere el doble de memoria,

④ + acabado marcador
atravesado desde el objeto marca de raíz, y luego a través de toda la pila, retire no objetos marcados, y no comprimido en los objetos marcados dentro de una región de las
características: no hay fragmentación de la memoria, 2 veces la memoria no es necesario


6, habrá una pérdida de memoria en qué circunstancias.

La primera OutOfMemoryError: PermGen espacio
intención de este problema es de procedimiento utiliza una gran cantidad de frasco o clase, hacer espacio java virtuales clases de carga de la máquina no es suficiente
segundo OutOfMemoryError: espacio de montón de Java
Este problema se produce debido a que el Java Virtual demasiados objetos creados por la máquina, entre las que se realiza la recolección de basura, la máquina virtual se asigna al espacio de memoria de almacenamiento dinámico se ha llenado con y relacionados con espacio de almacenamiento dinámico.
La tercera OutOfMemoryError: no puede crear nuevo hilo nativa
Esta propenso a errores en muchos casos el número de hebras de Java


7, por favor decir obras grupo de subprocesos.
En primer lugar empezar a cierto número de hilos, y dejar que estos hilos están en un estado de sueño, cuando hay una nueva petición del cliente, se despierta un dormir un hilo de rosca de la piscina y se deja manejar la solicitud al cliente, cuando el procesado después de la solicitud, y el hilo está en un estado de sueño.


8. ¿Cuál es la cerradura de bloqueo optimista y pesimista, tanto los que notar la diferencia.
Bloqueo pesimista asume que otros usuarios intentan acceder o cambiar va a visitar, la probabilidad de que los objetos que el cambio es muy alta, por lo que el ambiente de bloqueo pesimista, antes de empezar a cambiar esta situación de bloqueo de objeto en objeto, y hasta que envíe hasta que el bloqueo se libera después de los cambios. defecto pesimista es si bloqueos de página o bloqueos de registro, tiempo de bloqueo puede ser muy largo, tan largo puede restringir el acceso de otros usuarios, es decir, el bloqueo pesimista acceso concurrente no es bueno.
En contraste con el bloqueo pesimista, el bloqueo optimista cree que la probabilidad de otro usuario intenta cambiar el tema que usted está con el cambio es muy pequeño, por lo que el bloqueo optimista hasta que esté listo para confirmar el cambio cuando el objeto está bloqueado, cuando se lee y cambiar el tema si no está bloqueada. Visible optimista que el tiempo de bloqueo de bloqueo pesimista es cerraduras cortas, cerraduras optimistas se pueden bloquear con un tamaño más grande para obtener un mejor rendimiento de accesos concurrentes.


9, informe al ciclo de vida de la rosca.
Nuevo (estado de inicialización)

Ejecutable (listo)

En funcionamiento (estado de funcionamiento)

Bloqueado (bloqueado)

Terminado (estado terminado)


10, Jdk1.8 lo que todas las nuevas características.
En primer lugar, el método de interfaz por defecto
dos, expresiones lambda
tres funciones de interfaz
cuarto lugar, los métodos y constructores citó
cinco, Lambda alcances
seis variables locales
Siete, campos de objeto de acceso y las variables estáticas
Ocho, el método predeterminado de interfaces de acceso
IX. fecha API
diez, comentario de anotación


11, cómo prevenir callejón sin salida.
La idea básica es evitar el estancamiento: cada sistema de un proceso del sistema emitida para satisfacer la aplicación dinámica de recursos para revisar y decidir si se debe asignar los recursos de acuerdo con los resultados de pruebas, podría producirse un bloqueo del sistema si la distribución no se asigna de lo contrario se asignará esta política dinámica es una garantía de que el sistema no entrar en un estado de interbloqueo.
Si el sistema operativo se asegura de que todos los procesos de obtener todos los recursos necesarios para un tiempo limitado, el sistema está en un estado de seguridad o el sistema es inseguro.

Destrucción condición "irrenunciable": están en un proceso no puede obtener todos los recursos necesarios para esperar a que el estado, que ocupó a la espera de recursos para ser puesto en libertad de forma implícita reunirse con el sistema de listas de recursos, que puede ser utilizado por otros procedimientos, el proceso de espera solamente recuperar sus recursos originales y los recursos de las nuevas aplicaciones antes de que puedan reiniciar la ejecución.
Destrucción "petición para mantener condiciones": El primer método que se asigna de forma estática en el inicio de la ejecución de cada proceso para solicitar todos los recursos que necesita. La segunda es una asignación dinámica de recursos, es decir, cada proceso en la propia aplicación no requiere que tome los recursos del sistema.
Destrucción condiciones "ciclo de espera": el uso de los recursos y la distribución ordenada de su idea básica es que todo el sistema de numeración secuencial de los recursos, el uso de la escasa utilización, rara de un mayor número debe estar numerada en el orden en el momento de recursos de la aplicación, un proceso sólo un pequeño número de procesos con el fin de conseguir la aplicación procesar grandes cantidades.


. 12,手写冒泡排序
int a [] = {23,45,64,34,25,53,34,56,43,54,24};
int temp = 0;
for (int i = 0; i <a.length-1; i ++) {
for (int j = 0; j <a.length-1-i; j ++) {
si (a [j]> a [j + 1 ]) {
temp = a [j];
un [j] = a [j + 1];
un [j + 1] = temp;
}
}
}
For (int i = 0; i <a.length; i ++) {
System.out.println (a [i]);
}


13, puede escribir un solo modo de columna.
Asegúrese de que una clase tiene sólo una instancia y proporcionar un punto de acceso global a
un modo de hombre hambriento / perezoso

conejo conejo privada;

getRabbit conejo pública () {
si (conejo == null) {
conejo conejo = new ()
}
de conejo de retorno;
}


14, el proceso de solicitud esbozó SpringMVC
primer paso: los iniciados controlador una solicitud para el extremo delantero (el DispatcherServlet)

Paso dos: el controlador frontal de búsqueda solicitud HandlerMapping Handler (se puede configurar de acuerdo a XML, para encontrar comentarios)

El tercer paso: un asignador de procesador HandlerMapping Handler, el controlador vuelve al extremo distal, la solicitud se asignará a objeto HandlerExecutionChain HandlerMapping (Handler que comprende un objeto de procesador (controlador de la página), una pluralidad de interceptores objetos HandlerInterceptor), este modelo de política es fácil añadir una nueva estrategia de mapeo

Paso cuatro: el controlador frontal llama al procesador adaptador para realizar Handler

Paso cinco: adaptador de procesador HandlerAdapter cabrá para llevar a cabo de acuerdo con los resultados de Handler

Sexto paso: la ejecución del gestor está completo retorno a la ModelAndView adaptador

Séptima etapa: un adaptador de procesador, el controlador vuelve a la ModelAndView distal (ModelAndView SpringMVC objeto subyacente es un marco, y que comprende una vista de modelo)

Octava etapa: una vista de extremo frontal de las solicitudes de controlador para el analizador analiza una vista (de acuerdo con unos lógicos nombres de vista resueltos a la vista real (JSP)), esta estrategia puede ser fácilmente sustituido por otro punto de vista técnico, sólo para cambiar la vista del resolver

Paso 9: Vista de resolución, el controlador vuelve al extremo distal

Paso 10: un controlador de vista de extremo frontal de representación (modelo de datos vista de representación (objeto ModelAndView) lleno en el campo de solicitud)

Décimo paso: el resultado respuesta al controlador front-end user


15, describen las ventajas de primavera, y lo que es AOP y la COI, para lograr los principios subyacentes.
Ventajas:
1. contenedor COI de la primavera, las dependencias entre objetos a la primavera, lo que reduce el acoplamiento entre los componentes, por lo que nos centramos en la lógica de la aplicación;

2.可以提供众多服务,事务管理,WS等;

3.AOP的很好支持,方便面向切面编程;

4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等;

5.Spring DI机制降低了业务对象替换的复杂性;

6.Spring属于低侵入,代码污染极低;

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部。

núcleo de muelles en dos partes principales:
(. 1) AOP: Programación Orientada a Aspectos: extensión no modificar el código fuente para
(2) Ioc: Inversión de Control, tales como clase, hay métodos (métodos estáticos en la clase es no en el interior, creando clase objetos, utilizando el método de objeto llamada, crean un proceso objeto de la clase que requiere nuevos objetos fuera.

En pocas palabras:
por la reflexión, el XML recibido y adquisición de bucle xml análisis, reflexión

16, método de inyección descrito en la primavera y el nivel de aislamiento y la propagación de los asuntos.
primavera lograr asuntos maneras:

??? 1. codificación
??? 2.spring configuración
??? 3. fórmula Notas

gestión de transacciones declarativa se basa en la tecnología de AOP, la esencia:. llevado a cabo antes y después de la intercepción método de ejecución, y luego crear y añadir otra transacción antes de que comience el método de destino, confirmar o deshacer la transacción después de ejecutar la implementación del método objetivo de
la gestión de transacciones declarativa y hay dos maneras: el archivo de configuración basado en XML manera, sino que se lleva a cabo en otro método de negocio @Transaction notas, reglas de negocio se aplicarán a la lógica de negocio en
una configuración común de gestión de transacciones: interceptores de transacción y TransactionInterceptor transacción automática de proxy fase BeanNameAutoProxyCreator una combinación de

Transacción de primavera nivel de aislamiento: Hay cinco

  • DEFAULT Este es un nivel de aislamiento predeterminado PlatfromTransactionManager, utilice el nivel de aislamiento base de datos predeterminada
  • Lectura no confirmada (lectura uncommited): lecturas sucias, lecturas no repetibles, lecturas fantasma que puede suceder
  • Lectura confirmada (lectura comprometida): sucia evitar lee. Sin embargo, no repetibles y las lecturas fantasma puede ocurrir
  • Lectura repetible (lectura repetible): evitar lecturas sucias y no repetible pero lee las lecturas fantasma puede ocurrir.
  • Serializado (serializable): Evitar la lectura de todos los problemas anteriores.

La propagación de Asuntos de primavera: siete clases

PORPAGATION_REQUIRED: el apoyo a la transacción actual, si no existe para crear una nueva (por defecto)
PROPAGATION_SUPPORTS: el apoyo a la transacción actual, y si no, no utilice la transacción
PROPAGATION_MANDATORY: el apoyo a la transacción actual, si no, una excepción
PROPAGATION_REQUIRES_NEW: Si no existe una transacción, que cuelga ya que la transacción actual, crear una nueva transacción
PROPAGATION_NOT_SUPPORTED: se ejecuta en modo no transaccional, si hay una transacción existe, suspender la transacción actual
PROPAGATION_NEVER: se ejecuta en modo no transaccional, si hay una transacción, se produce una excepción
PROPAGATION_NESTED: Si existe la transacción actual, ejecución de la transacción anidada


17, mybatis el error de análisis Katex: Se esperaba 'EOF' , consiguió '#' en la posición 2: # y cualquier diferencia, en qué circunstancias cada uno. ... es un empalme directo;
# tipos de datos no necesitan preocuparse, MyBatis conversión de tipo automática de datos; Katex el error de análisis: el esperado 'EOF', GOT '#' en la posición 22 es: ... la conversión, requiere su propio tipo de datos determinados; # se puede prevenir sql inyección; no impide inyección sql;


18. ¿Cuáles son las dinámicas de SQL mybatis.


19, brevemente REDIS tipos de datos y los escenarios respectivos.
Type:
Cuerda
escenarios: String es el tipo más comúnmente utilizado de los datos, clave común / de almacenamiento de valores puede ser clasificado como tal que puede ser totalmente dio cuenta en funcionalidad Memcached presente, y más eficiente. También puede disfrutar de la persistencia Redis regular, registro de operaciones y funciones de replicación.
Hash
escenarios: en Memcached, que a menudo se empacar un poco de la información estructurada en HashMap, serializado en el cliente se almacena como un valor de cadena, tales como el apodo del usuario, edad, sexo, y otros puntos, esta vez en necesidad cuando modificar un particular, a menudo necesario eliminar todos los valores después de deserialización, cambiar un valor de uno, entonces la secuencia de la espalda almacenado. Esto no sólo aumenta el coste, no se aplica a un número de ocasiones posibles operaciones concurrentes (por ejemplo, dos operaciones simultáneas necesitan modificar puntos). La estructura de Hash Redis puede hacer que parezca actualización en la base de datos como una propiedad única modificar un valor de las propiedades particulares.
Lista
escenarios de aplicación: lista de Redis de escenarios es muy grande, Redis es también uno de los más importante estructura de datos, como su lista de observación, gorjeo lista de fans por lo que la lista se puede utilizar la estructura Redis lograr.
Set:
escenarios: juego de Redis de funciones externas adjuntos a la lista es similar a una lista de características, el especial es conjunto es automática de de-duplicación, cuando se necesita para almacenar una lista de datos, no quieren duplicar conjunto de datos es una opción buena y conjunto para proporcionar un juicio de si un miembro de una colección de conjunto de interfaces importantes, esta lista no se ofrece.
Ordenados conjunto de
escenarios de uso:
Similar al conjunto escena uso Redis ordenadas ajustado, la diferencia no es auto-ordenar el conjunto, y puede proporcionar el Ordenada establecer una prioridad (Puntuación) parámetros para ordenar a través el usuario adicional es un miembro, y se inserta en la ordenada, es decir, la clasificación automática . Cuando se necesita una lista ordenada de no repetición y la recolección, se puede seleccionar el conjunto ordenado de estructuras de datos, tales como la línea de tiempo pública de Twitter puede ser almacenado hasta tiempo de post como la puntuación, el tiempo se ordena automáticamente cuando dicha adquisición.


20, brevemente ReDiS persistencia, persistencia y la forma de lograr
una:
Redis apoya RDB y AOF dos tipos de mecanismo de persistencia. Persistencia función con eficacia la pérdida de datos causada por evitar el proceso de problemas de abstinencia persistió antes de que el archivo siguiente reinicio de usar para la recuperación de datos.
RDB: persistencia RDB es una instantánea de los datos de proceso actual se guarda en el disco duro del proceso, RDB gatillo persistencia proceso se divide en el gatillo de disparo manual y automática.

II: 1) la ejecución de comandos bgsave, Redis proceso hijo del proceso padre para determinar si existe actualmente se está aplicando, como proceso hijo RDB / AOF, si hay una orden directa de retorno bgsave.

?? 2) Operación proceso padre tenedor para crear un proceso hijo, la operación tenedor proceso padre bloqueará las opciones de visualización latest_fork_usec través de comandos de información de estadísticas, se puede conseguir una reciente operación que consume tiempo tenedor, en microsegundos.

?? 3) después de la finalización del proceso padre tenedor, comando devuelve bgsave "Antecedentes ahorro comenzaron a" información y no va a obstruir el proceso padre, puede seguir respondiendo a otros comandos.

?? 4) el proceso hijo para crear archivos de RDB, la memoria genera un archivo de instantánea temporal de acuerdo con el proceso padre, el archivo original se reemplaza después de la finalización de los átomos. LASTSAVE tiempo de ejecución de comandos de la última generación puede obtener RDB, los correspondientes información estadística opciones rdb_last_save_time.

?? 5) para el proceso padre envía una señal que indica la finalización del proceso, el proceso padre a las estadísticas de actualización, consulte la rdb_ específica * opciones relacionadas en virtud de la información de persistencia.


21, brevemente TCP, el protocolo HTTP. Relación entre TCP / IP y el protocolo HTTP, la red ha introducido un lugar fácil de entender: "Estamos en la transmisión de datos, puede utilizar solamente (capa de transporte) de protocolos TCP / IP, pero en ese caso, si no la capa de aplicación, no será reconocido contenido de los datos, si se quiere dar sentido a la transmisión de datos, debe utilizar el protocolo de capa de aplicación, protocolo de capa de aplicación que hay muchos, como HTTP, FTP, Telnet, etc., puede definir su propio .web protocolo de capa de aplicación que utiliza el protocolo HTTP para la capa de aplicación el protocolo HTTP para encapsular la información de texto, y luego usar el protocolo de transporte TCP / IP para hacerlo será enviado a la red ".

El término TCP / Representante de control de transporte de Protocolo de Internet / IP, se refiere a un protocolo establecido. representantes de Protocolo de Internet "IP", TCP y UDP utilizan el protocolo de transferencia de paquetes de datos de una red a otra. La idea de la PI en la autopista, lo que permite a otros protocolos de funcionamiento a la salida y encontrar otros equipos de la misma. TCP y UDP son "camión" en la carretera, que llevan la carga es como HTTP, protocolo de transferencia de archivos FTP tales acuerdos.
Usted debe ser capaz de entender, los protocolos de capa de transporte TCP y UDP son FTP, HTTP y SMTP como a su uso. Aunque TCP y UDP se utilizan para transportar otros protocolos, que tienen una diferencia significativa: TCP proporciona una transmisión de datos garantizada, UDP no proporciona. Esto significa que TCP tiene un mecanismo especial para garantizar la seguridad de datos sin errores de transmisión de un extremo a otro punto final, pero UDP no proporciona ninguna garantía de tal.
HTTP (Hypertext Transfer Protocol) protocolo TCP a la información de transmisión entre los dos equipos (típicamente un servidor web y cliente) se utiliza. Los clientes usan un navegador Web envía una solicitud HTTP al servidor Web, servidor Web envía la información solicitada al cliente.


22 es, en efecto, Nginx
Nginx es un peso ligero, de alto rendimiento, alta estabilidad, buen servidor HTTP y la concurrencia de proxy inverso. También debido a sus características, su aplicación es muy amplio.

Proxy inverso, equilibrio de carga estática y dinámica de separación


estructura de almacenamiento de base de datos Mysql 23. ¿Qué? Qué tienen cerraduras?

Almacenamiento Estructura: índice de árbol B índice hash
de bloqueo: bloqueos a nivel de fila (fila-nivel), el bloqueo de nivel de tabla (nivel de tabla), bloqueo pesimista (bloqueo pesimista), el bloqueo optimista (bloqueo optimista)


24, cómo optimizar instrucción SQL?

1 de indexación como sea posible, incluyendo la columna de la condición, la columna de conexión, columnas de clave externa, etc.
2 en la medida de lo posible que el orden de las columnas en el orden de las columnas en consonancia con el índice compuesto de
3 * No seleccione como sea posible, pero sólo muestra los campos que necesitan una lista de
4 reducir el número de capas subconsulta como
5 filtros de datos como sea posible en la sub consulta ...


25. Por favor describa brevemente el proceso de pago Alipay.
1. En primer lugar ir a la hormigas de oro vestido de Centro de desarrolladores registrado cuenta de comerciante, y certificación.
2. Descargar la versión Java del SDK y demostración SDK y demostración Descargar
3. SDK para unirse al proyecto, la ruta raíz del proyecto de las nuevas bibliotecas carpeta se copiarán en el paquete frasco, que se utiliza aquí es Gradle, si está utilizando el experto Por favor, modifique su propio.
4. La clave pública, clave privada generada. Generar una clave pública, clave privada curso oficial, de acuerdo con el funcionamiento del sitio web tutorial oficial, un muy simple, no aquí en las imágenes. Después de generar completar su clave pública para subir hacia arriba.
5. Debido a que el entorno de desarrollo es el uso de un entorno de pruebas, en la línea va a utilizar un entorno real, por lo que tenemos que pagar un tesoro de los parámetros en el archivo de configuración
6. Iniciar escribir escrito interfaz de Alipay interfaz de notificación asíncrona de devolución de llamada de esta interfaz es única forma de solicitud posterior, Si en la obtención no obtendrá los datos, que no es compatible. URL de retorno


26, puede escribir varias springboot comentario común.
(1) @RestController y @Controller especificar una clase, como un controlador de comentario
(2) @RequestMapping anotaciones de mapeo de nivel de método, que utiliza un socio pequeño para creer que Spring MVC están familiarizados con
(3) @EnableAutoConfiguration y es @SpringBootApplication a nivel de clase de anotación, tarro dependiente maven según adivinar correctamente completado automáticamente resorte de configuración correspondiente, siempre que la introducción de la forma predeterminada dependiente de resorte de arranque-motor de arranque en la web y configura automáticamente Spring MVC tomcat contenedor
(4) nivel de clase @Configuration anotación, la anotación general, se utiliza para identificar la clase en la que el método principal
(5) de la anotación de nivel de clase @ComponentScan, escanear automáticamente toda la primavera cargado inyección haba incluye el conjunto, que se utiliza generalmente en la clase en la que el método principal
(6) @ ImportResource nivel de clase de anotación, cuando tenemos que utilizar una configuración de XML, y utilizar @ImportResource @Configuration para identificar los recursos del archivo de clase.
(7) @Autowired notas, generalmente se combinan con anotaciones a @ComponentScan automáticamente inyectar un nivel de servicio o Dao frijol
(8) @Component anotación nivel de clase se utiliza para identificar un componente, por ejemplo, puedo personalizar un filtro, necesita este comentario después de la identificación, la primavera de arranque será identificado correctamente.


27, archivos de configuración del núcleo y que Springboot de? ¿Cuál es la diferencia entre ellos?
expediente de solicitud de la primavera de arranque es la configuración del núcleo y de arranque archivo de configuración.
archivo de configuración de aplicación que es fácil de entender, sobre todo para la configuración automática del proyecto de Primavera de arranque.
de arranque es el contexto principal de la aplicación, que bootstrap loader prioridad sobre el applicaton.
Bootstrap utilizado principalmente con recursos adicionales para cargar la información de configuración, puede descifrar la propiedad fuera del archivo de configuración local.
Ambos comparten un contexto medio ambiente, es la fuente de cualquier aplicación propiedades del resorte externo.
Dentro del atributo de prioridad de arranque de carga, por defecto no pueden ser cubiertos con la misma configuración a nivel local.
boostrap cargado por el padre Application Context, la prioridad de carga que el applicaton


28. ¿Cuál es el principio de configuración automática Springboot es?

1), SpringBoot activa cuando la carga principal clase de configuración, la configuración automática se volvió @EnableAutoConfiguration

2), @ action EnableAutoConfiguration: la ruta de clase META-INF / spring.factories todos dentro dispuestas

se añade valor EnableAutoConfiguration al recipiente;

EnableAutoConfigurationImportSelector introdujo el uso de algunos componentes a buque

Puede ver selectImports (método de contenido);

Lista configuraciones = getCandidateConfigurations (annotationMetadata, atributos ); la obtención de candidatos dispuestos SpringFactoriesLoader.loadFactoryNames ()
escanear META-INF / spring.factories todo camino bolsas frasco
para escanear el contenido de estos archivos a las propiedades de los objetos empaquetados
adquiridos de las propiedades de la EnableAutoConfiguration.class clase (nombre de clase) de la imagen, y después añadirlos en el recipiente
de cada una de dichas clases son xxxAutoConfiguration un recipiente de montaje, se añaden al recipiente; que ver con su auto-configuración;
3), cada clase es automáticamente la configuración automática de configuración;


29, en el desarrollo han encontrado ningún problema, usted es la forma de resolver, ¿qué aprendió allí?

temas de desarrollo:
problemas de threads, problemas de alta concurrencia, desbordamiento de pila, etc.
Solución:
En primer lugar, Baidu para ver una solución.
En segundo lugar, comprobar su código es un error considerar que, sobre sus propias ideas y código para ver si es un problema.
En tercer lugar, mirada JAVA documentación de ayuda para ver si el error de sus propios métodos.
En cuarto lugar, la investigación sobre el grupo para encontrar a alguien para ayudar a responder.
Cosecha:
se pierda de nuevo el error, no estará en la parte II equivocado, registrada en el libro y cuaderno


30, ahora la empresa le dará una demanda, la demanda lo que se obtiene tras lo va a hacer, por favor elaborar

De acuerdo a las necesidades de la forma de analizar lograr, a continuación, intercambiar y compañeros de trabajo, llegar a su finalización.


Liberadas dos artículos originales · ganado elogios 0 · Vistas 41

Supongo que te gusta

Origin blog.csdn.net/weixin_45724219/article/details/104794608
Recomendado
Clasificación