Entrevista Java resumen de preguntas frecuentes

  

  Es otro año de oro, plata y plata. Con la reanudación del trabajo en diversas industrias, todos también han comenzado una ola de búsqueda de empleo. Como profesor de excelente capacitación laboral en Java, también resuelve algunos de los problemas en la entrevista para muchos estudiantes. Darle una breve introducción a los problemas que encontrará en la entrevista de Java.

  1. Principio multiplataforma de JAVA

  El código fuente se compila para generar archivos de bytecode, y los archivos de bytecode se traducen al código de máquina correspondiente a través de diferentes versiones de JVM descargados en diferentes plataformas. Tenga en cuenta que los programas Java multiplataforma no son JVM. La JVM se desarrolla utilizando C / C ++, que se compila en bytecode y no puede ser multiplataforma.

  2. ¿Cuál es la diferencia entre int e Integer?

  1), Integer es una clase de empaquetado de int, int es un tipo de datos básico de java 2), la variable entera debe ser instanciada antes de que pueda usarse, pero la variable int no necesita 3), Integer es en realidad una referencia a un objeto, cuando es nuevo Integer, en realidad genera un puntero a este objeto; e int almacena directamente el valor de datos 4), el valor predeterminado de Integer es nulo, el valor predeterminado de int es 0

  3. Ciclo de vida de los objetos Java.

  Fase de creación, fase de aplicación, fase invisible, fase inalcanzable, fase de recopilación, fase de finalización, fase de reasignación de espacio de objetos, etc.

  4. El principio de almacenamiento de Map o HashMap

  HashMap se compone de una estructura de matriz + lista vinculada, referencia específica: principio de implementación de HashMap

  5. Explicación detallada del principio de estructura JVM y mecanismo de trabajo de GC

  Referencia específica: estructura JVM, explicación detallada del mecanismo de trabajo del GC. Cuando se trata de GC, recuerde dos puntos: 1. GC es responsable de reclamar todo el espacio de memoria sin ningún objeto referenciado. Nota: La recolección de basura es el espacio de memoria ocupado por el objeto sin ninguna referencia en lugar del objeto en sí mismo. 2. Dos algoritmos del mecanismo de reciclaje GC, a. Método de conteo de referencias b. Algoritmo de análisis de accesibilidad (aquí se puede acceder Puedes ver qué ciclo de objetos básicos 2 Java),

  6. Características orientadas a objetos JAVA?

  Encapsulación, herencia, polimorfismo y encapsulación abstracta: reflejada por clases, encapsulando entidades en clases, que contienen atributos y métodos.

  Herencia: características heredables entre clases, haciendo reutilización de código

  Polimorfismo: hace referencia a diferentes subclases pasando al objeto de clase principal para exhibir diferentes comportamientos

  Abstracción: abstraiga las características comunes de una clase de entidades y las encapsule en una clase abstracta.

  7. La diferencia entre final, finalmente y finalizar

  final:

  1. Modificador (palabra clave) Si una clase se declara como final, significa que ya no puede derivar una nueva subclase y no se puede heredar como una clase principal. Por lo tanto, una clase no puede declararse como abstracta o final.

  2. Declarando variables o métodos como finales, puede e68a84e8a2ade799bee5baa6e79fa5e9819331333365666235 para asegurarse de que no se cambien en uso. Las variables declaradas como finales deben tener un valor inicial en el momento de la declaración, y solo pueden leerse y no modificarse en futuras referencias, y los métodos declarados como finales también pueden usarse solo y no pueden sobrecargarse.

  finalmente:

  Proporcione finalmente bloques para realizar operaciones claras durante el manejo de excepciones. Si se produce una excepción, se ejecutará la instrucción catch coincidente, y luego el control ingresará el bloque finalmente, si corresponde.

  finalizar:

  Es el nombre del método. La tecnología Java permite el uso del método finalize () para realizar la limpieza necesaria antes de que el recolector de basura elimine el objeto de la memoria. Se llama a este método cuando el recolector de basura determina que no se hace referencia al objeto que se está limpiando.

  Finalizar se define en la clase Object, por lo que todas las clases lo heredan. Las subclases pueden anular el método finalize () para organizar los recursos del sistema o realizar otras tareas de limpieza.

  8. ¿Java tiene goto?

  goto es una palabra reservada en lenguaje java, que no se ha utilizado en java

  Goto se usa junto con condiciones en el lenguaje C para operaciones tales como saltar de bucles. Java es un lenguaje de programación estructurado. Usar goto en Java causará muchos problemas innecesarios. Goto aún no se ha usado. Java requiere un uso simple y conveniente

  9. ¿Cuál es la diferencia entre error y excepción?

  Tanto Exception como Error heredan la clase Throwable. En Java, solo las instancias del tipo Throwable pueden ser lanzadas (Throw) o atrapadas (Catch). Es el tipo de componente básico del mecanismo de manejo de excepciones.

  La excepción es una situación inesperada que puede esperarse durante el funcionamiento normal del programa y puede y debe detectarse y manejarse en consecuencia.

  El error se refiere a una situación que es poco probable que ocurra en circunstancias normales. La mayoría de los errores harán que el programa esté en un estado anormal e irrecuperable. Como es anormal, no es conveniente y no necesita ser capturado. Por ejemplo, el OutOfMemoryError común es una subclase de Error.

  La clase de excepción se divide en excepciones marcables y excepciones no marcadas. Las excepciones marcables deben capturarse en el código fuente para el procesamiento de captura. Esto es parte de la verificación en tiempo de compilación.

  Las excepciones no verificadas son las llamadas excepciones de tiempo de ejecución, similares a NullPointerException, ArrayIndexOutOfBoundsException, etc., que generalmente son errores lógicos que pueden evitarse mediante la codificación.

  10. Cuando los campos A y B en la tabla de datos están indexados, ¿usar A o B solo tendrá un efecto de indexación?

  Al observar el índice combinado de A y B, quién está al frente y quién está atrás, si A está al frente, entonces usar A solo tendrá un efecto de índice, y usar B solo no lo hará, y viceversa. De manera similar, cuando se usa como consulta difusa, si solo usa el primer%, entonces hay un efecto de índice, si usa doble% de coincidencia, entonces no hay efecto de índice

  11. ¿List, Set, Map hereda de la interfaz Collection?

  List y Set son interfaces heredadas de la interfaz Collection. Set no permite elementos duplicados. List permite elementos duplicados. Las clases derivadas de la interfaz Set son TreeSet, HashSet y LinkedHashSet. Las clases derivadas de la interfaz List son ArrayList, Vector, etc. Map es una interfaz independiente y no hereda la interfaz Collection.

  12. ¿Es posible heredar la clase String?

  "No, porque la clase String tiene un modificador final, y la clase modificada final no se puede heredar, y los detalles de implementación no pueden cambiar".

  13. En entornos distribuidos y en clúster, ¿cómo actualizar la memoria caché y cómo mantenerla sincronizada?

  A. Cómo actualizar el caché 1. Actualización regular 2. Cobertura de actualización activa. Cada marco de caché tiene su propio mecanismo de actualización, o mecanismo de invalidación de caché. Tome como ejemplo a Redis y Ehcache. Todos tienen su propio mecanismo de caducidad. Además, al actualizar activamente la cobertura, solo necesita obtener la clave correspondiente para sobrescribir los datos.

  B. ¿Cómo mantener la caché sincronizada? Este redis tiene su propio mecanismo de sincronización de clúster, es decir, la función de replicación. Ehcache también tiene una configuración de sincronización de caché distribuida, solo necesita configurar diferentes direcciones de servidor.

  13. ¿Cómo evitar la presentación de nuevas tareas?

  Al cambiar el estado del grupo de subprocesos a DETENER, cuando la ejecución ejecuta la tarea nuevamente, si se prueba que el estado no está EN EJECUCIÓN, se rechaza la ejecución rechazada, logrando así el propósito de evitar el envío de nuevas tareas.

  14. ¿Cuál es la diferencia entre String, StringBuilder y StringBuffer?

  (1) Velocidad de ejecución: StringBuilder> StringBuffer> String

  String es una constante de cadena. Las otras dos son variables de cadena. Los objetos de cadena no se pueden cambiar después de su creación. La operación en String es en realidad un proceso de creación y reciclaje continuo, y la velocidad de ejecución es lenta.

  (2) Seguridad de subprocesos: StringBuilder no es seguro para subprocesos, mientras que StringBuffer es seguro para subprocesos

  El objeto StringBuffer puede usar la palabra clave sincronizada cuando múltiples hilos usan el búfer de cadena para garantizar la seguridad del hilo.

  (3) Usar escenarios

  String es adecuado para una pequeña cantidad de operaciones de cadena; StringBuilder es adecuado para un solo subproceso en el caso de una gran cantidad de operaciones en el búfer de cadena; StringBuffer es adecuado para múltiples subprocesos en el caso de muchas operaciones en el búfer de cadena.

  15. ¿Cuál es la diferencia entre == e igual?

  (1) Comparación entre tipos de datos básicos, utilizando signos de doble igualdad (==), comparando los valores de los dos

  (2) Comparación entre tipos de datos compuestos (clases), comparando direcciones en el grupo de memoria, usando iguales. En el lenguaje Java, generalmente se da igual al desarrollador para definir, qué condiciones cumplen el Objeto es igual.

  16. ¿Qué son los contenedores Java?

  El contenedor de JAVA incluye lo siguiente:

  Lista, Mapa, Conjunto, Colección, Lista, LinkedList, ArrayList, Vector, Pila, Conjunto

  Mapa, Hashtable, HashMap, WeakHashMap

  17. ¿Cuáles son las formas de crear hilos?

  Hay 4 formas de crear hilos:

  1. Heredar la clase Thread (la clase de hilo real) es la implementación de la interfaz Runnable.

  2. Implemente la interfaz Runnable y reescriba el método de ejecución dentro

  3. Las aplicaciones pueden usar el marco Ejecutor para crear grupos de subprocesos. El marco de ejecución es una implementación del grupo de subprocesos proporcionado en juc.

  4. Implemente la interfaz invocable para crear un subproceso de subproceso a través del contenedor FutureTask

  18. ¿Qué es la reflexión?

  En el entorno de ejecución Java, para cualquier clase, ¿puedo saber qué propiedades y métodos tiene esta clase? Para cualquier objeto, ¿puedo llamar a cualquiera de sus métodos?

  El mecanismo de reflexión de Java proporciona principalmente las siguientes funciones:

  1. Determine la clase a la que pertenece cualquier objeto en tiempo de ejecución.

  2. Construya un objeto de cualquier clase en tiempo de ejecución.

  3. Determine las variables miembro y los métodos de cualquier clase en tiempo de ejecución.

  4. Llame a cualquier método de objeto en tiempo de ejecución.

  19. ¿Cuál es la función de shutdownNow ()?

  Prevenir el envío de nuevas tareas e interrumpir el hilo que se está ejecutando actualmente, es decir, el hilo en el trabajador. Además, eliminará las tareas en workQueue y las agregará a la lista para volver.

  20. ¿Por qué no tiene ningún efecto en las tareas enviadas?

  Al llamar al método de interrupción de una tarea, detectará la tarea en el trabajador. Si la tarea correspondiente al trabajador no se interrumpe y es un subproceso inactivo, la interrumpirá. Además, los valores en workQueue todavía se envían a las obras en un cierto orden lógico, de modo que puede asegurarse de que las tareas enviadas se ejecuten de acuerdo con la lógica del subproceso en sí y no se vean afectadas.

  Las anteriores son las preguntas comunes en la entrevista resumidas por el excelente maestro de capacitación laboral en Java. Espero que tenga alguna ayuda para la entrevista.

Supongo que te gusta

Origin www.cnblogs.com/jiuq521/p/12702780.html
Recomendado
Clasificación