Un conjunto de [Colección de ensayos estereotipados de entrevista] 1000 últimas preguntas de entrevista de alta frecuencia de Java en 2023 que pueden enviarlo a una gran fábrica

Hace dos días, un pequeño compañero dejó un mensaje de fondo.Las últimas entrevistas se han vuelto cada vez más difíciles, especialmente en los aspectos técnicos.

En general, los entrevistadores técnicos utilizarán sus propios métodos para examinar las habilidades técnicas y los conocimientos teóricos básicos de los programadores.

Que si tal pregunta:

  • ¿Está familiarizado con los principios de implementación del marco del proyecto, Spring, Mybatis y otros marcos?
  • ¿Ha entrado en contacto con tecnologías como el middleware de mensajes, el equilibrio de carga y el marco RPC? ¿Se ha realizado la subbase de datos y la tabla de MySQL?
  • Diseño de arquitectura distribuida, ¿está involucrado el bloqueo distribuido de Redis?
  • ...... (palabras de 1W omitidas aquí)

En muchos casos, las preguntas formuladas por el entrevistador serán diferentes de las preguntas en el "banco de preguntas" preparado por mí mismo.Incluso después de una revisión, todavía no sé por dónde empezar la próxima entrevista.

En respuesta a las preguntas anteriores, encontré específicamente una "Conferencia sorpresa de entrevista de trabajo de Java", que cubre: fundamentos informáticos, Java, JVM, Spring, algoritmo, microservicio, experiencia cara a cara distribuida de grandes fábricas, mapa técnico del cerebro , etc. .¡Un total de más de 1600 páginas son de muy alta calidad! ! !

Independientemente de si desea ir a una entrevista recientemente, ¡se recomienda que todos guarden una copia! ! ¡Después de terminar el estudio, ya sea que se trate de una promoción en la fábrica o de un trabajo y un aumento de salario, no hay problema!

Primer vistazo al contenido general de "Java Job Interview Sorpresa Lecture": Java Foundation, JVM, subprocesos múltiples, MySQL, Spring, SpringBoot, SpringCloud, Dubbo, Mybatis, Redis, red, Linux, MQ, Zookeeper, Netty, big data, algoritmo Y estructuras de datos, patrones de diseño, práctica de proyectos, plantillas de currículum y más.

Debido a que hay demasiados detalles en las notas, después de todo, hay casi 1700 páginas de documentos, por lo que solo puedo seleccionar algunos capítulos en los puntos de conocimiento e introducirlos. ¡Los pequeños nodos de cada capítulo tienen un contenido más detallado!

Conceptos básicos de Java

  • Visión general de Java
  • gramática básica
  • orientado a objetos
  • Clases e interfaces
  • variables y métodos
  • clase interna
  • reescritura y sobrecarga
  • Juicio de igualdad de objetos
  • pasar por valor
  • Paquete Java
  • yo
  • reflexión
  • API comunes
  • Descripción general del contenedor de recolección
  • Interfaz de colección
  • mapa hash
  • subprocesos múltiples
  • excepción java
  • Gato
  • programación concurrente
  • Preguntas de entrevista básicas de Java

Parte JVM

  • Los componentes principales de la JVM y lo que hacen
  • diferencia de pila
  • Manejo de problemas de seguridad de concurrencia
  • excepción de falta de memoria
  • Modelo de memoria JVM, mecanismo GC y principio
  • delegación de padres
  • copia profunda y copia superficial
  • Ajuste de rendimiento de JVM
  • hilo
  • área de memoria JVM
  • Memoria de tiempo de ejecución de JVM
  • Recolección de basura y algoritmos
  • Java cuatro tipos de referencia
  • Algoritmo de recopilación generacional de GC VS Algoritmo de recopilación de partición
  • recolector de basura GC
  • JAVA IO/NIO
  • Mecanismo de carga de clase JVM
  • Preguntas de alta frecuencia de la entrevista JVM

parte multiproceso

  • El concepto básico de hilo, programa y proceso. y su relacion
  • El estado básico del hilo.
  • Cómo se crean los hilos
  • Principio del grupo de subprocesos
  • ciclo de vida del hilo
  • seguridad del hilo
  • Uso de la palabra clave volátil: hacer visibles las variables en varios subprocesos
  • Los escenarios de uso y los principios de volatile y ThreadLocal
  • La diferencia entre sincronizado y volátil.
  • Granularidad de bloqueo sincronizado, escenario de interbloqueo simulado
  • Java concurrencia y paralelismo
  • Cómo aumentar efectivamente la cantidad de concurrencia
  • La forma de comunicación del proceso: cola de mensajes, memoria compartida, semáforo, comunicación de socket, etc.
  • hilo de comunicacion
  • Interfaces o métodos concurrentes y síncronos
  • Bloqueos de sincronización e interbloqueos
  • Algoritmo de programación de procesos
  • CAS
  • AQS
  • NIÑO
  • Preguntas de alta frecuencia de entrevistas multiproceso

Sección MySQL

  • Conceptos básicos de la base de datos
  • tipo de datos
  • motor
  • índice
  • asuntos
  • Cerrar
  • vista
  • procedimientos almacenados y funciones
  • desencadenar
  • Sentencias SQL de uso común
  • optimización SQL
  • Optimización de la estructura de la base de datos
  • Bloqueos de MySQL: bloqueos pesimistas, bloqueos optimistas, bloqueos exclusivos, bloqueos compartidos, bloqueos de nivel de tabla, bloqueos de nivel de fila
  • El principio de las transacciones distribuidas Compromiso en 2 fases, síncrono asíncrono con bloqueo sin bloqueo
  • Nivel de aislamiento de transacciones de la base de datos, el nivel de aislamiento predeterminado de MySQL
  • ¿Cómo implementa Spring las transacciones?
  • Cómo implementa las transacciones JDBC
  • Implementación de transacciones distribuidas
  • El análisis completo de SQL, el principio del proceso de ejecución y la conversión de fila a columna de SQL
  • Principio de implementación y escenarios de aplicación del árbol rojo-negro.
  • Solución de ID de autoincremento de subtabla de MySQL
  • Comprender el algoritmo de generación de id distribuida SnowFlake
  • La estructura de datos y el principio del algoritmo detrás del índice MySQL
  • MVCC
  • Índice agrupado del principio del índice MySQL
  • La diferencia entre bases de datos relacionales y no relacionales
  • Preguntas frecuentes de la entrevista de MySQL

Parte de resorte

  • Primavera lOC
  • El principio de Spring AOP
  • Spring AOP dos métodos de proxy
  • ¿Cómo garantiza Spring la seguridad de la concurrencia del controlador?
  • ¿Qué patrones de diseño se utilizan en Spring?
  • Comprensión de Spring IOC, ¿su proceso de inicialización?
  • Gestión de transacciones de Spring
  • Descripción general de Spring MVC Descripción general de Spring
  • Inversión de resorte de control (IOC)
  • Anotaciones de primavera
  • Acceso a datos de primavera
  • Programación orientada a aspectos de Spring (AOP) ¿Qué es AOP?
  • Preguntas de la entrevista SpringMVC
  • Principios de Spring MVC
  • Acceso a datos de primavera
  • Principios de la primavera
  • Componentes del núcleo de resorte
  • Preguntas frecuentes de la entrevista de primavera

Parte de la bota de resorte

  • Configuración general de Spring Boot
  • Seguridad
  • Compara las ventajas y desventajas de Spring Security y Shiro
  • Spring Boot resuelve problemas entre dominios
  • monitor
  • Integrar proyectos de terceros
  • Spring Boot implementa el manejo de excepciones
  • Características de Spring Boot
  • Principios de Spring Boot
  • Spring Boot implementa tareas de temporización
  • ¿Qué mejoras hace Spring Boot sobre Spring?
  • Spring Boot carga en caliente
  • Spring Boot establece el tiempo efectivo y actualiza automáticamente el caché, y el soporte de tiempo se configura en el archivo de configuración
  • La diferencia entre hibernación e ibatis
  • Hablar sobre el grupo de conexiones de mybatis
  • Preguntas de la entrevista clásica de Spring Boot

Parte de la nube de primavera

  • ¿Qué es Spring Cloud?
  • ¿Por qué necesitas aprender Spring Cloud?
  • Perspectiva de desarrollo de Spring Cloud
  • Spring Cloud en comparación con Dubbo, ¿en qué escenario se debe usar Spring Cloud?
  • Introducción al mecanismo Spring Cloud Fuse
  • Principio CAP y teoría BASE
  • Transacciones distribuidas, bloqueos distribuidos
  • Objetivos del diseño y ventajas y desventajas.
  • Estructura general
  • Configuración de la nube de primavera
  • Nube de primavera Netflix
  • Autobús de la nube de primavera
  • Detective de nubes de primavera
  • Arroyo de nubes de primavera
  • Tarea de nube de primavera
  • Nube de primavera OpenFinge
  • Relación de versiones de Spring Cloud
  • ¿La diferencia entre SpringBoot y SpringCloud?
  • ¿Qué significa registro y descubrimiento de servicios? ¿Cómo lo implementa Spring Cloud?
  • ¿Cuál es el significado del equilibrio de carga?
  • ¿Qué es Hystrix? ¿Cómo logra la tolerancia a fallas?
  • ¿Qué es Netflix Fingir? ¿Cuáles son sus ventajas?
  • El papel del disyuntor Spring Cloud
  • Preguntas de la entrevista de Spring Cloud

parte doblada

  • conocimiento básico
  • diseño arquitectónico
  • centro de registro
  • configuración de clúster
  • carta de acuerdo
  • Patrones de diseño
  • Gestión de operación y mantenimiento
  • SPI
  • Principios del sistema distribuido
  • Introducción completa del enlace de una llamada de Dubbo
  • ¿Cuántas estrategias de equilibrio de carga admite Dubbo?
  • ¿Qué protocolos admite Dubbo, los escenarios de aplicación, las ventajas y desventajas de cada protocolo?
  • ¿Cómo configurar el tiempo de espera de Dubbo?¿Qué centros de registro tiene Dubbo?
  • ¿Cuáles son las estrategias para el equilibrio de carga del clúster de Dubbo?¿Qué es Dubbo?
  • ¿Los principales escenarios de aplicación de Dubbo?, ¿las funciones principales de Dubbo?, ¿los componentes principales de Dubbo?
  • ¿Cuál es el proceso de registro y descubrimiento del servicio Dubbo?
  • Diseño de arquitectura de Dubbo?
  • Diseño del marco Dubbo: se divide un total de 10 capas: ¿El proceso de llamada de servicio de Dubbo?
  • ¿Qué protocolos admite Dubbo, los escenarios de aplicación, las ventajas y desventajas de cada protocolo?
  • ¿Qué centros de registro tiene Dubbo?
  • ¿Por qué es necesaria la Gobernanza del Servicio?
  • La relación entre Dubbo y Spring
  • Diferencia entre Dubbo y Dubbox
  • La relación entre Dubbo y Spring Cloud
  • La diferencia entre Dubbo y Spring Cloud

parte de mybatis

  • Principio JPA
  • Introducción a MyBatis
  • caché de Mybatis
  • Principio de caché de primer nivel de Mybatis (nivel sqlsession)
  • Caché MyBatis
  • Fuente de datos MyBatis y grupo de conexiones
  • Análisis y principio de funcionamiento de MyBatis
  • Proceso de ejecución de Spring MVC
  • ¿Qué es MyBatis?
  • Habla sobre el caché de MyBatis
  • ¿Cómo pagina Mybatis? ¿Cuál es el principio del complemento de paginación?
  • Describa brevemente el principio de funcionamiento de los complementos de Mybatis y cómo escribir un complemento.
  • ¿Por qué Mybatis es una herramienta de mapeo ORM semiautomática? ¿Cuál es la diferencia entre él y completamente automático?
  • ¿En qué se diferencia MyBatis de Hibernate?
  • ¿Cuáles son los beneficios de MyBatis?
  • Describa brevemente la relación de mapeo entre el archivo de mapeo Xml de Mybatis y la estructura de datos interna de Mybatis

parte redis

  • Descripción general de Redis
  • tipo de datos
  • Persistencia
  • Estrategia de eliminación de claves caducadas
  • relacionado con la memoria
  • Dividir
  • problema distribuido
  • otros problemas
  • ¿Cómo garantiza el middleware de mensajes la coherencia de los mensajes?
  • ¿Cómo implementar el mecanismo de reintento de mensajes?
  • Tipos de datos Redis
  • Cómo se sincronizan los clústeres de Redis
  • ¿Cuál es el proceso de adición de datos de Redis: hash slot?
  • ¿Cuáles son las estrategias de eliminación de Redis?
  • Conceptos básicos del clúster de Redis
  • Modo maestro-esclavo de Redis Cluster
  • ¿Por qué Redis es tan rápido?
  • ¿Cuáles son los problemas con Redis usando subprocesos múltiples?
  • ¿Qué estructuras de datos admite Redis para la tabla de saltos de Redis?
  • Redis es un proceso único y un subproceso único, ¿cómo puede ser altamente simultáneo?
  • ¿Cómo usa Redis Redis para implementar bloqueos distribuidos?
  • ¿Cómo se implementa la atomicidad de la operación de bloqueo distribuido de Redis dentro de Redis?

parte de la red

  • arquitectura de red informática
  • Arquitectura TCP/IP de cuatro capas
  • Preguntas de entrevista comunes de la familia de protocolos TCP/IP
  • Comunicación de socket, así como conexión larga, subpaquete y procesamiento de desconexión anormal de conexión
  • En http, la diferencia entre obtener publicación
  • Contenido del mensaje HTTP
  • Cuéntame sobre el acceso del navegador a http://www.taobao.com , qué tipo de proceso ha pasado
  • Protocolo HTTP, protocolo HTTPS, protocolo SSL y proceso de interacción completo
  • Explicación detallada del principio del proceso Ping
  • Notas detalladas del protocolo TCP/IP: protocolo ARP y protocolo RARP
  • El proceso de resolución de nombres de dominio DNS
  • Cuatro procesos de sesión Http
  • Arquitectura de red de 7 capas
  • Principio de TCP/IP
  • Apretón de manos TCP de tres vías/onda de cuatro vías
  • Principio HTTP
  • CDN principio RPC
  • Znode tiene cuatro formas de nodos de directorio
  • balanceo de carga
  • Equilibrio de carga de capa 4 frente a equilibrio de carga de capa 7
  • Algoritmo/estrategia de saldo negativo
  • LVS
  • Mantener viva
  • Equilibrio de carga de proxy inverso de Nginx

parte de linux

  • que es linux
  • ¿Cuál es la diferencia entre Unix y Linux?
  • ¿Qué es el núcleo de Linux?
  • ¿Cuáles son los componentes básicos de Linux?
  • arquitectura linux
  • ¿Cuál es la diferencia básica entre BASH y DOS?
  • ¿Proceso de arranque de Linux?
  • ¿Cuál es el nivel de ejecución predeterminado del sistema Linux?
  • ¿Qué método de comunicación entre procesos utiliza Linux?
  • ¿Qué archivos de registro del sistema tiene Linux?
  • ¿Ayuda instalar varios entornos de escritorio en un sistema Linux?
  • ¿Qué es el espacio de intercambio?
  • ¿Qué es la cuenta raíz y qué es LILO?
  • ¿Qué son las CLI?
  • ¿Qué son las GUI?
  • ¿Cuáles son las ventajas del código abierto?
  • ¿Cuál es la importancia del proyecto GNU?
  • disco, directorio, archivo
  • Seguridad
  • Caparazón
  • comando de administración de disco comando cd
  • partición de intercambio
  • overcommit_memory
  • Verifique la carga de la CPU y la memoria en el sistema Linux
  • preguntas clasicas de entrevista

parte del middleware del mensaje

  • ¿Por qué usar MQ?
  • ¿Cuáles son las ventajas y desventajas de las colas de mensajes?
  • ¿Cuáles son las ventajas y desventajas de RabbitMQ?
  • ¿Qué middleware de mensajes utiliza su empresa en el entorno de producción?
  • ¿Cuáles son las ventajas y desventajas de Kafka, ActiveMQ, RabbitMQ, RocketMQ?
  • ¿Cuáles son los problemas comunes de MQ? ¿Cómo solucionar estos problemas?
  • ¿Qué es RabbitMQ?
  • Escenarios de uso de Rabbitmq
  • Conceptos básicos de RabbitMQ
  • Modo de trabajo de RabbitMQ
  • ¿Cómo garantizar el orden de los mensajes de RabbitMQ?
  • ¿Cómo se distribuye el mensaje?
  • ¿Cómo se enrutan los mensajes?
  • ¿En qué transporte se basa el mensaje?
  • ¿Cómo garantizar una transmisión confiable de mensajes RabbitMQ?
  • ¿Cómo garantizar que los mensajes no se consuman repetidamente? En otras palabras, ¿cómo asegurar la idempotencia del consumo de mensajes?
  • Ideas de diseño MQ
  • ¿Cómo garantiza el middleware de mensajes la coherencia del mensaje y cómo implementar el mecanismo de reintento de mensajes?
  • semántica de garantía de entrega
  • Esquema semántico "exactamente una vez" para productores
  • Esquema semántico "exactamente una vez" para consumidores
  • colección ISR
  • Explique qué es Apache Kafka.
  • Explique cuál es el método de mensajería tradicional.
  • Explique qué ventajas tiene Kafka sobre las tecnologías tradicionales.
  • ¿Cuál es el significado de corredor en Kafka?
  • ¿Cuál es el mensaje máximo que puede recibir el servidor Kafka?
  • Explique qué es Zookeeper para Kafka ¿Podemos usar Kafka sin Zookeeper?
  • Explicar cómo los usuarios de Kafka consumen información.
  • ¿Explicar cómo mejorar el rendimiento para los usuarios remotos?

parte del cuidador del zoológico

  • ¿Qué es ZooKeeper?
  • ¿Qué ofrece ZooKeeper?
  • Sistema de archivos Zookeeper
  • ¿Cómo asegura Zookeeper la sincronización de estado de los nodos maestro y esclavo?
  • Cuatro tipos de nodo de datos Znode
  • Mecanismo Zookeeper Watcher - Notificación de cambio de datos
  • Registro de clientes Implementación de Watcher
  • Implementación de Watcher de procesamiento del lado del servidor
  • Vigilante de devolución de llamada del cliente
  • Mecanismo de control de permisos de ACL
  • Funciones de chroot
  • gestión de sesiones
  • rol de servidor
  • Sincronización de datos de estado de trabajo del servidor bajo Zookeeper
  • ¿Cómo garantiza zookeeper la consistencia del orden de las transacciones?
  • ¿Por qué hay un nodo maestro maestro en un clúster distribuido?
  • ¿Cómo lidiar con el tiempo de inactividad del nodo ZK?
  • ¿Cuáles son los modos de implementación de Zookeeper?
  • ¿Cuáles son los clientes Java de Zookeeper?
  • ¿Qué es Chubby y qué piensas de él en comparación con el cuidador del zoológico?
  • Diga algunos comandos de uso común de los cuidadores del zoológico.
  • ¿La conexión y la diferencia entre el algoritmo ZAB y Paxos?
  • Escenarios de aplicación típicos de Zookeeper ¿Cuáles son las funciones de Zookeeper?
  • Cuéntame sobre el mecanismo de notificación de Zookeeper.
  • ¿La relación entre Zookeeper y Dubbo?
  • Cómo comunicarse entre clústeres de Zookeeper
  • Preguntas de la entrevista del cuidador del zoológico

parte neta

  • Introducción a Netty
  • Diseño de alto rendimiento Netty
  • Diseño de arquitectura netty
  • Netty preguntas de la entrevista
  • ¿Qué es Netty?
  • ¿Cuáles son las características de Netty?
  • ¿Cuáles son las ventajas de Netty?
  • ¿Cuáles son los escenarios de aplicación de Netty?
  • ¿Cuáles son los aspectos del alto rendimiento de Netty?
  • ¿Cuál es la diferencia entre BIO, NIO y AIO?
  • ¿De qué está hecho NIO?
  • ¿El modelo de subprocesamiento de Netty?
  • ¿Razones y soluciones para TCP sticky/unpacking?
  • ¿Qué es la copia cero de Netty?
  • ¿Qué tipo de componentes importantes hay en Netty?
  • ¿De cuántas maneras Netty envía mensajes?
  • ¿Cuántos subprocesos inicia Netty por defecto?¿Cuándo inicia?
  • ¿Qué protocolos de serialización conoces?
  • ¿Cómo elegir un protocolo de serialización?
  • ¿Qué configuraciones de tipo de latido admite Netty?
  • ¿Cuál es la diferencia entre Netty y Tomcat?
  • ¿Código fuente de NIOEventLoopGroup?
  • Principio de red
  • Implementación de Netty RPC
  • Preguntas de entrevista clásicas de Netty

gran parte de datos

  • Hadoop
  • concepto de chispa
  • Arquitectura central de SPARK
  • Componentes principales de SPARK
  • modelo de programación SPARK
  • Modelo computacional SPARK
  • Proceso de ejecución de SPARK
  • Proceso SPARK RDD
  • CHISPA RDD
  • Tormenta
  • arquitectura de clúster
  • HILO
  • El principio del equilibrio de carga
  • Principios e implementación de Six Web Load Balancing
  • redirección http
  • Saldo negativo de DNS
  • Equilibrio de carga de proxy inverso
  • Equilibrio de carga IP (LVS-NAT)
  • Enrutamiento directo (LVS-DR)
  • Túnel IP (LVS-TUN)
  • simultaneidad de Tomcat
  • Tipo de intercambio
  • concepto básico
  • almacenamiento columnar
  • Concepto básico de Hbase
  • Arquitectura central de Hbase
  • Lógica de escritura Hbase
  • HBase contra Cassandra
  • cola CLH

Sección de Algoritmos y Estructuras de Datos

  • árbol negro rojo
  • Aplicación de árbol rojo-negro en STL
  • Árbol AVL
  • árbol de búsqueda binaria
  • Definición de árbol rojo-negro
  • definición de árbol B
  • árbol B+
  • Trie tree ((árbol de diccionario)
  • La diferencia entre el algoritmo codicioso y la programación dinámica.
  • BitMap literalmente significa
  • aplicación de mapa de bits
  • Análisis de complejidad de clasificación de mapa de bits
  • Proceso de algoritmo de mapa de bits
  • Evaluación del algoritmo de mapa de bits
  • Siete algoritmos de búsqueda
  • — Algoritmo de consistencia
  • Algoritmo JAVA
  • estructura de datos
  • Algoritmo de cifrado
  • búsqueda secuencial
  • búsqueda binaria
  • búsqueda de interpolación
  • búsqueda de Fibonacci
  • búsqueda de tabla de árbol
  • búsqueda de bloques
  • búsqueda de hash

Parte de combate real del proyecto (informe completo del proyecto + video + código fuente)

  • registro
  • slf4j
  • Log4j
  • Volver a iniciar sesión
  • Tomando como ejemplo el servicio de transporte de vehículos en línea, divídalo en proyectos distribuidos
  • Análisis de demanda de proyectos de Internet de alta concurrencia
  • Lagunas comerciales en escenarios de alta concurrencia, una comprensión correcta del negocio habilitado por la tecnología
  • Diseño de arquitectura de microservicios de alta concurrencia en proyectos de producción reales
  • Formular razonablemente diagramas de arquitectura empresarial para soportar desafíos de alta concurrencia y escalabilidad.
  • Cómo precipitar las capacidades de Taiwán central en el desarrollo de proyectos
  • Proyecto de selección de tecnología de desmantelamiento y diagrama de arquitectura técnica
  • Diseño de la función de despacho de pedidos en el negocio de transporte de automóviles en línea
  • Diseño de interfaz de plataforma abierta en transporte de vehículos en línea
  • Aplicación del teorema CAP en la producción real
  • Sobre la garantía de la consistencia de los datos en el car-hailing online: candados distribuidos
  • Garantía de consistencia de datos en el servicio de transporte de vehículos en línea: transacciones distribuidas

sección de patrón de diseño

  • patrón único
  • patrón de fábrica
  • patrón de fábrica abstracto
  • modo constructor
  • patrón de prototipo
  • patrón de adaptador
  • patrón decorador
  • modo proxy
  • patrón mediador
  • modo de comando
  • modelo de cadena de responsabilidad
  • patrón de estrategia
  • patrón de iterador
  • modo de combinación
  • Patrón de observador
  • modo fachada
  • modo memo
  • patrón de visitante
  • modo de estado
  • modo intérprete
  • modo de peso mosca
  • Modo Puente
  • patrón de método de plantilla

Debido al espacio limitado de la plataforma, no se puede mostrar más y más contenido detallado uno por uno. Solo podemos presentar brevemente algunos de los contenidos (después de todo, hay casi 2,000 páginas de documentos). La siguiente es una captura de pantalla de algunos del contenido

Pd: debido a las limitaciones de espacio, no se pueden mostrar todas las notas para todos, así que deje que todos se refieran a ellas en forma de capturas de pantalla del contenido principal.

Supongo que te gusta

Origin blog.csdn.net/qq13321123/article/details/132016696
Recomendado
Clasificación