Preguntas comunes de entrevistas sobre Java (con respuestas), ¿cuántas has respondido tú mismo?
A: final significa final. final se puede utilizar para definir variables, métodos y clases, pero tiene diferentes significados. Las clases declaradas finales no se pueden heredar.
¿Puede una subclase anular (reescribir) el constructor de una clase principal?
Respuesta: El método de construcción de la clase principal no puede ser anulado por la subclase, porque los nombres de clase de la clase principal y de la subclase no pueden ser los mismos.
2. Indique la diferencia entre String y StringBuffer.
Respuesta: Los objetos definidos por la clase String se utilizan para almacenar cadenas de "longitud fija".
El objeto definido por la clase StringBuffer es para almacenar cadenas de "longitud variable".
3. Si hay dos clases A y B (tenga en cuenta que no son interfaces) y desea utilizar las funciones de estas dos clases al mismo tiempo, ¿cómo escribiría esta clase C?
Respuesta: Debido a que las clases A y B no son interfaces, no se pueden heredar directamente. Pero las clases A y B se pueden definir como clases padre-hijo, y luego la clase C puede implementar las funciones de la clase A y la clase B. Si A es la clase padre de B y B, y C es la clase padre de C, entonces C puede implementar funciones A y B...
4. Hable sobre su comprensión de las clases e interfaces abstractas.
Respuesta: El propósito de definir una clase abstracta es proporcionar una forma común que puedan disfrutar sus subclases. Las subclases pueden ampliar las clases abstractas según sus propias necesidades. Las clases abstractas no pueden crear instancias. Los métodos abstractos no tienen cuerpos funcionales y deben implementarse en subclases. Hereda por extensión.
Interfaz: Una interfaz permite que una clase herede de varias interfaces. Un programa Java sólo puede heredar una clase a la vez, pero puede implementar varias interfaces. Una interfaz no puede tener ningún método específico. Una interfaz también se puede usar para definir un conjunto de constantes que una clase puede usar. Su método de implementación es la interfaz.
5. ¿Cuáles son las condiciones de carrera en Java?
Respuesta: Las condiciones de carrera causarán algunos errores en el programa en condiciones concurrentes. Una condición de carrera ocurre cuando varios subprocesos compiten por ciertos recursos. Si el primer programa que se ejecuta no supera la competencia y se ejecuta más tarde, habrá algunos errores inciertos en todo el programa. Este tipo de error es difícil de encontrar y volverá a ocurrir debido a la competencia aleatoria entre subprocesos.
6. ¿Cómo detener un hilo en Java?
Respuesta: Java proporciona una API enriquecida, pero no proporciona una API para detener subprocesos. JDK 1.0 originalmente tenía algunos métodos de control como stop(), suspend() y resume(), pero fueron abandonados en versiones posteriores de JDK debido a posibles amenazas de interbloqueo. Después de eso, los diseñadores de la API de Java no proporcionaron una forma compatible y segura para detener un hilo. Cuando se complete el método run() o call(), el hilo finalizará automáticamente. Si desea finalizar el hilo manualmente, puede usar una variable booleana volátil para salir del ciclo del método run() o cancelar la tarea para interrumpir el hilo. Haga clic aquí para ver el código de muestra.
7. ¿Qué sucede si ocurre una excepción mientras el hilo se está ejecutando?
Respuesta: En pocas palabras, si no se detecta la excepción, el hilo dejará de ejecutarse. hilo. UncoughtException Handler es una interfaz integrada que se utiliza para manejar interrupciones repentinas de subprocesos causadas por excepciones no detectadas. JVM utilizará un subproceso cuando una excepción no detectada interrumpa el subproceso. getUncaughtExceptionhandler() para consultar el controlador de excepciones de recuento del hilo y pasar el hilo y la excepción como parámetros al método de excepción de recuento() del controlador para su procesamiento.