El editor ha compilado las preguntas de prueba escritas en la entrevista muy popular de 2017 para amigos que entrevistan a los programadores de Java. Si usted es un lector que se está preparando para entrevistar a los programadores de Java, aprenda rápidamente.
1. La siguiente declaración es correcta ()
A. Dos clases públicas modificadas pueden existir al mismo tiempo en un archivo.
B. El constructor se puede anular
C. Las subclases no pueden acceder a las propiedades que no son modificadas por la clase principal por público y protegidas.
D. Las clases modificadas finales se pueden heredar
Respuesta: C
Solo puede haber una clase pública en un archivo fuente de Java. Cuando hay una clase pública, el nombre del archivo de origen debe ser consistente con él, de lo contrario no se puede compilar. Si no hay clase pública en el archivo fuente, no hay un requisito de consistencia entre el nombre del archivo y la clase. En cuanto a Main (), no tiene que colocarse en la clase pública para ejecutar el programa.
Reescribir es modificar los métodos de la clase principal después de que la clase infantil se hereda de la clase principal. El nombre del método, el parámetro y el valor de retorno deben ser el mismo. Los métodos marcados finales no se pueden reescribir. Si no puede heredar un método, no puede anular este método.
Extensión: la diferencia entre reescribir la anulación y la sobrecarga de sobrecarga
Sobrecarga del método Java
Es que se pueden crear múltiples métodos en una clase, que tienen el mismo nombre, pero tienen diferentes parámetros y diferentes definiciones. Al llamar a los métodos, el método específico está determinado por el número de diferentes parámetros y tipos de parámetros que se les pasó a ellos. Los tipos de valor de retorno pueden ser los mismos o diferentes, lo cual también es un polimorfismo orientado a objetos.
Java Method Reescribir
El polimorfismo entre la clase principal y la clase infantil redefine las funciones de la clase principal. Si un método definido en una subclase tiene el mismo nombre y parámetros que su clase principal, decimos que el método está anulando. En Java, las subclases pueden heredar métodos de la clase principal sin reescribir el mismo método. Pero a veces la subclase no quiere heredar los métodos de la clase principal intacta, sino que quiere hacer ciertas modificaciones, lo que requiere la reescritura del método. La sobrescritura de métodos también se llama sobrescritura del método.
Si un método en una subclase tiene el mismo nombre de método, tipo de retorno y tabla de parámetros como método en la clase principal, el nuevo método anulará el método original. Si necesita el método original en la clase principal, puede usar la palabra clave súper, que se refiere a la clase principal de la clase actual.
Los permisos de modificación de acceso de las funciones de subclase no pueden ser menores que los de la clase principal;
Los métodos de reescritura solo pueden existir en las relaciones de herencia, y los métodos de reescritura solo pueden reescribir métodos que no son privados en la clase principal.
2. El número de tiempos de ejecución de (int x = 0, y = 0; (y! = 0) && (x <4); x ++) loop es ()
A. tiempos ilimitados
B. Ejecutar 4 veces
C. Ejecutar 3 veces
D. No lo ejecute una vez
Respuesta: D
El valor inicial de y es 0. En todo el bucle para el bucle, el valor de y permanece sin cambios, por lo que la declaración de juicio (y! = 0) no es verdadera, por lo que no se ejecuta una vez.
3. Con respecto al montón de Java, la siguiente declaración es incorrecta ()
A. Todas las instancias y matrices de clases se asignan memoria en el montón.
B. La memoria del montón ocupada por el objeto es recopilada por el sistema automático de gestión de la memoria.
C. La memoria del montón consiste en objetos sobrevivientes y muertos y fragmentos libres.
D. Las matrices se asignan en la pila
Respuesta: D
En primer lugar, la matriz se asigna en el montón, por lo que la declaración de D es incorrecta.
La estructura del montón Java: el montón de JVM es el área de datos de tiempo de ejecución, y todas las instancias y matrices de clases se asignan memoria en el montón. Se crea cuando se inicia el JVM. La memoria del montón ocupada por el objeto es recolectada por el sistema automático de gestión de la memoria, es decir, el recolector de basura. La memoria del montón está compuesta de objetos que sobreviven y mueren. Los objetos sobrevivientes son accesibles para la aplicación y no se recolectarán basura. El objeto muerto es un objeto al que no es accesible para la aplicación y no ha sido reciclado por el recolector de basura. Ocuparán espacio de memoria de montón hasta que el recolector de basura recupere estos objetos.
4. Cuando se usa las palabras clave y estas palabras clave, la descripción correcta a continuación es ()
A. use super () en el constructor de subclase para mostrar el constructor que llama a la clase principal;
Super () debe escribirse en la primera línea del constructor de subclase, de lo contrario, la compilación no se pasará.
B.super () y este () no tiene que colocarse en la primera línea en el método del constructor
C.THIS () y Super () pueden aparecer en un constructor al mismo tiempo
D.This () y Super () se pueden usar en entornos estáticos, incluidos métodos estáticos y bloques de declaración estática
Respuesta: A
La palabra clave Java esto solo se puede usar en el cuerpo del método. Cuando se crea un objeto, la máquina virtual Java (JVM) asignará un puntero al objeto que se refiere a sí mismo, y el nombre de este puntero es este. Por lo tanto, esto solo se puede usar en métodos no estáticos en la clase, y esto no debe aparecer en métodos estáticos y bloques de código estático.
La clave para Super es similar a esto, que es que el método de variable o miembro de miembro bloqueado se vuelve visible, o se usa para referirse al método de variable de miembro bloqueado y miembro miembro.
Sin embargo, Super se usa en subclases, con el propósito de acceder a los miembros bloqueados en la clase principal directa. Tenga en cuenta que es la clase principal directa (esa es la superclase más reciente por encima de la clase)
5. ¿Cuál de las siguientes afirmaciones es correcta ()
R. Después de compilarse el programa Java, se generará código de máquina
B. El programa Java producirá un código de byte después de compilarse.
C. Los programas de Java generarán DLL después de ser compilados
D. Ninguno de los anteriores es correcto
Respuesta: B
Java Bytecode es un archivo intermedio generado por la compilación de archivos de origen de Java
La naturaleza multiplataforma de Java Virtual Machines es una computadora imaginaria que puede ejecutar Java Bytecode. También es relativamente similar a otros lenguajes de programación.
Primero introduzcamos el proceso de compilación del idioma C: el archivo C es compilado por el programa del compilador C y genera el archivo ejecutable del archivo ejecutable de Windows y luego lo ejecuta en Windows.
Presentemos el proceso de compilación de Java: el archivo Java es compilado por el compilador Java. El archivo Java Bytecode es el archivo de clase en la máquina virtual Java. El código de la máquina se ejecuta por la CPU; Java se compila con Bytecode.
Las computadoras solo pueden ejecutar códigos de máquina. Cuando Java se ejecuta, convierte el código de bytecodo en código de máquina. C/C ++ se compila directamente en el código de la máquina al compilar
6. ¿Cuál de las siguientes afirmaciones es correcta ()
A. El modificador abstracto modifica campos, métodos y clases
B. La parte del cuerpo del método abstracto debe envolverse en un par de aparatos {}
C. Declarar métodos abstractos, los frenos son opcionales
D. Declarar los métodos abstractos no se pueden escribir en aparatos ortopédicos
Respuesta: D
El modificador abstracto se utiliza para modificar clases y métodos de miembros
Las clases modificadas con resumen representan clases abstractas. Las clases abstractas se encuentran en la capa abstracta del árbol de herencia. Las clases abstractas no pueden ser instanciadas.
El método abstracto se utiliza para expresar un método abstracto, y el método abstracto no tiene un cuerpo de método. Los métodos abstractos se utilizan para describir qué funciones tiene el sistema, pero no proporciona implementaciones específicas.
Resumen es una palabra clave importante en Java y se puede usar para modificar una clase o un método.
Al modificar un método, significa que el método solo tiene una firma de características (firma) y no tiene implementaciones específicas, pero deja la implementación específica a la subclase que hereda la clase, por lo que no puede haber aparatos ortopédicos.
7. Las siguientes afirmaciones son correctas ()
A. El constructor en la clase no se puede omitir
B. El constructor debe tener el mismo nombre que la clase, pero el método no puede tener el mismo nombre que la clase
C. El constructor se ejecuta cuando un objeto es nuevo
D. una clase solo puede definir un constructor
Respuesta: C
Puede haber malentendidos aquí. De hecho, los métodos de clase ordinarios pueden tener el mismo nombre que el nombre de la clase. La única diferencia entre ellos y el constructor es que el constructor no tiene valor de retorno.
8. ¿Es el hilo GC un hilo de demonio ()
Respuesta: si
Los hilos se dividen en hilos de demonio y hilos no damonmonos (es decir, hilos de usuario).
Mientras no haya un hilo no dademon en la instancia JVM actual, todo el hilo de demonio funcionará; Solo cuando termine el último hilo de no damemon, el hilo de demonio terminará funcionando con el JVM.
La aplicación más típica de los hilos de demonio es GC (recolector de basura)
9. Con respecto a Sleep () y Wait (), el siguiente error es ()
A. El sueño es un método de clase de subprocesos (hilo), espera un método de clase de objeto;
B. El sueño no libera el bloqueo del objeto, espere abandonar el bloqueo del objeto;
C. El sueño detiene el hilo, pero el estado de monitoreo permanece, y se reanudará automáticamente después del final;
D. Después de esperar, ingrese a la piscina de bloqueo de espera. Solo después de emitir el método de notificación para este objeto, se obtiene el bloqueo del objeto y ingresa al estado en ejecución.
Respuesta: D
El sueño es un método de la clase de subprocesos (hilo), lo que hace que este hilo detenga la ejecución por un tiempo específico y brinde oportunidades de ejecución a otros hilos, pero el estado de monitoreo permanece y se reanudará automáticamente después de eso. Llamar al sueño no liberará el bloqueo del objeto.
esperar es un método de la clase de objeto. Llamar al método de espera en este objeto hace que el hilo renuncie al bloqueo del objeto e ingrese a la piscina de bloqueo de espera esperando este objeto. Solo después de emitir un método de notificación (o notificar) para este objeto, este hilo ingresa a la piscina de bloqueo del objeto y se prepara para obtener el bloqueo del objeto y ingresa al estado en ejecución.
10. El currículum de método () es responsable de restaurar la ejecución de los cuales hilos ()
A, un hilo que se detiene llamando al método stop ().
B, un hilo que se detiene llamando al método Sleep ().
C, un hilo que se detiene llamando al método Wait ().
D, un hilo que se detiene llamando al método suspender ().
Respuesta: D
Suspender puede suspender un hilo, lo que significa suspender el hilo. Ocupa recursos pero no se ejecuta. Use el currículum para restaurar el hilo suspendido y deje que el hilo continúe ejecutándose.