Preguntas clásicas de entrevistas básicas de Java, bienvenido a recopilar y compartir.
Pregunta: ¿Qué sucede si el método principal se declara privado?
Respuesta: Puede compilar normalmente, pero provocará "el método principal no es público" cuando se ejecute.
Pregunta: ¿Cuál es la diferencia entre la referencia pasajera y el valor de pase en Java?
Respuesta: Pasar una referencia significa pasar una dirección en lugar del valor en sí, y pasar un valor es una copia del valor.
Pregunta: Si desea reescribir el método igual de un objeto, ¿qué más debe considerar?
Respuesta: hashcode.
Pregunta: ¿Cómo se implementa la "escritura, ejecutándose en todas partes" de Java en todas partes?
Respuesta: Los programas Java se compilarán en un archivo de clase compuesto por bytecodes, que pueden ejecutarse en cualquier plataforma, por lo que Java es independiente de la plataforma.
Pregunta: Explique el papel de cada palabra clave en la declaración pública void void principal (string args [])
Respuesta: El público: el método principal es el primer método llamado cuando se ejecuta un programa Java, por lo que debe ser visible para el entorno Java. Entonces la visibilidad se establece en Pulic.
estática: la plataforma Java no creará una instancia de esta clase al llamar a este método, por lo que este método debe declararse estático.
Void: el método principal no tiene valor de retorno.
La cadena es el tipo de parámetro que se pasa en la línea de comando, y Args se refiere a una matriz de cadenas pasadas en la línea de comando.
Pregunta: == Diferencia de iguales
Respuesta: == Compare si dos objetos son el mismo objeto en la memoria, lo que significa que las ubicaciones de almacenamiento en la memoria son las mismas. Los valores almacenados por los dos objetos de cadena son los mismos, pero pueden almacenarse en diferentes lugares de la memoria.
== La comparación es la referencia, mientras que el método igual compara el contenido. Public Boolean Equals (Obj OBJ) Este método es proporcionado por un objeto de objeto y puede reescribirse por subclases. La implementación predeterminada devolverá verdadera solo cuando el objeto se compara consigo mismo, y en este momento es equivalente a ==. Cadena, bitset, fecha y archivo anule todo el método igual. Para dos objetos de cadena, los valores iguales significa que contienen la misma secuencia de caracteres. Para una clase de envoltorio con un tipo básico, los valores iguales significan que los valores del tipo básico correspondientes son los mismos.
clase pública igual a {public static void main (string [] args) {string s1 = "ABC"; Cadena S2 = S1; Cadena S5 = "ABC"; Cadena s3 = nueva cadena ("ABC"); Cadena S4 = nueva cadena ("ABC"); System.out.println ("== Comparación:" + (S1 == S5)); System.out.println ("== Comparación:" + (S1 == S2)); System.out.println ("Usando el método igual:" + S1.Equals (S2)); System.out.println ("== Comparación:" + S3 == S4); System.out.println ("Usando el método igual:" + S3.Equals (S4)); }}resultado:
== Comparación: Verdadero
== Comparación: Verdadero
Uso del método igual: verdadero
FALSO
Uso del método igual: verdadero
Pregunta: ¿Qué sucede si se elimina el modificador estático del método principal?
Respuesta: El programa puede compilar normalmente. Se lanzará una excepción Nosuchmethoderror durante el tiempo de ejecución.
Pregunta: ¿Por qué el controlador Oracle Type4 se llama controlador delgado?
Respuesta: Oracle proporciona un controlador JDBC tipo 4, llamado controlador delgado. Este controlador contiene una implementación de TCP/IP Net8 en Oracle que se implementa completamente en Java. Por lo tanto, es independiente de la plataforma y puede ser descargado por el navegador en tiempo de ejecución y no confía en la implementación de Oracle de ningún cliente. La cadena de conexión del cliente utiliza el puerto de dirección TCP/IP, no el nombre TNSNAM del nombre de la base de datos.
Pregunta: Permítanme presentar el método finalizar
Respuesta: Final: Declaración constante. Finalmente: manejar excepciones. Finalizar: ayuda con la recolección de basura.
Las variables declaradas en la interfaz son finales de forma predeterminada. La clase final no puede ser heredada, lo que significa que no hay subclases. Esto se hace por tipos básicos de razones de seguridad, como String and Integer. Esto también permite al compilador hacer algunas optimizaciones y facilita la seguridad de la seguridad de los subprocesos. El método final no se puede reescribir. El valor de la variable final no se puede cambiar. El método Finalize () se llamará antes de que un objeto sea destruido y reciclado. Finalmente, generalmente se usa para el manejo de excepciones, independientemente de si se lanza o no una excepción, se ejecutará. Por ejemplo, el cierre de la conexión generalmente se realiza en un bloque finalmente.
Pregunta: ¿Cuál es la API Java?
Respuesta: Java API es una colección de una gran cantidad de componentes de software que proporcionan muchas características útiles, como los componentes de la GUI.
Pregunta: ¿Cuál es la clase Gregoriancalendar?
Respuesta: Gregoriancalendar brinda apoyo para los calendarios occidentales tradicionales.
Pregunta: ¿Cuál es la clase ResourceBundle?
Respuesta: ResourceBundle se utiliza para almacenar recursos en una localidad específica. Las aplicaciones pueden cargar estos recursos de acuerdo con la localidad de tiempo de ejecución, proporcionando así la visualización de diferentes idiomas.
Pregunta: ¿Por qué no hay variables globales en Java?
Respuesta: Las variables globales son globalmente visibles, y Java no admite variables globalmente visibles porque: las variables globales destruyen el principio de transparencia de referencia. Las variables globales causan conflictos en el espacio de nombres.
Pregunta: ¿Cómo convertir el tipo de cadena al tipo de número?
Respuesta: El método Value de la clase entera puede convertir una cadena en un número. Aquí hay un ejemplo de código:
Cadena numstring = "1000";
int id = Integer.ValueOf (numstring) .intValue ();
Pregunta: ¿Cuál es la clase SimpleTimezone?
Respuesta: SimpleTimezone proporciona soporte de fecha gregoriana.
Pregunta: ¿Cuál es la diferencia entre un bucle y un bucle do?
Respuesta: La estructura While determina si la siguiente iteración debe continuar al comienzo del bucle. La estructura do/while determina si la próxima iteración continuará al final del bucle. La estructura DO ejecutará el cuerpo del bucle al menos una vez.
Pregunta: ¿Cuál es la clase local?
Respuesta: La clase local se utiliza para ajustar dinámicamente la salida del programa de acuerdo con el entorno local.
Pregunta: ¿Cuáles son los principios de la programación orientada a objetos?
Respuesta: Hay tres puntos principales: polimorfismo, herencia y encapsulación.
Pregunta: Introducción a los principios de herencia
Respuesta: La herencia permite que un objeto obtenga las propiedades de otro objeto. El uso de la herencia permite reutilizar las funciones probadas y se pueden modificar a la vez, y todos los lugares de herencia surtan efecto al mismo tiempo.
Pregunta: ¿Qué es la conversión de tipo implícito?
Respuesta: La conversión de tipo implícito es simplemente asignar un tipo a otro tipo, sin decir explícitamente al compilador que se ha producido la conversión. No todos los tipos admiten la conversión de tipo implícito.
Ejemplo de código:
int i = 1000;
largo j = i; // Casting implícito
Pregunta: ¿Es size de una palabra clave en Java?
Respuesta: No.
Pregunta: ¿Cuál es el método nativo?
Respuesta: El método nativo es un método de implementación de código no java.
Pregunta: en System.out.println (), ¿Qué son System, Out e Println?
Respuesta: El sistema es una clase final predefinida proporcionada por el sistema. Out es un objeto PrintStream, y Println es un método sobrecargado en el objeto OUT.
Pregunta: ¿Qué son la encapsulación, la herencia y el polimorfismo?
Respuesta: En pocas palabras, el polimorfismo se refiere a múltiples implementaciones de un nombre. El polimorfismo permite a una entidad implementar diferentes operaciones de manera común. La operación específica está determinada por la implementación real.
Hay tres formas de manifestar el polimorfismo en Java: la sobrecarga de métodos se implementa a través de la herencia y la reescritura de métodos a través de la interfaz Java.
Pregunta: ¿Qué es una conversión de tipo explícita?
Respuesta: La conversión de tipo explícito le dice explícitamente al compilador que convierta los objetos.
Ejemplo de código:
largo I = 700.20;
int j = (int) i; // Casting explícito
Pregunta: ¿Qué es una máquina virtual Java?
Respuesta: Java Virtual Machines son sistemas de software que se pueden portar a diferentes plataformas de hardware.
PREGUNTA: ¿Qué es el tipo de Conversión Down?
Respuesta: La conversión hacia abajo se refiere a la conversión de un tipo común a un tipo específico, que se realiza hacia abajo en la estructura de herencia.
Pregunta: ¿Cuál es el modificador de acceso para Java?
Respuesta: El modificador de acceso es una palabra clave que indica el tipo de acceso de un miembro de la clase. Use estas palabras clave para definir el acceso a métodos o variables para programas. Ellos contienen:
Público: todas las clases pueden acceder a protegido: todas las subclases pueden acceder a privado: solo las clases atribuidas pueden acceder a predeterminado: las clases y subclases atribuidas en el mismo paquete pueden acceder
Pregunta: ¿Cuáles son las clases de padres de todas las clases?
Respuesta: Objeto.
Pregunta: ¿Cuáles son los tipos básicos de Java?
Respuesta: Byte, Char, Short, int, Long, Float, Double, Boolean.
Pregunta: ¿Cuáles son las características de los tipos estáticos?
Respuesta: Las variables estáticas están vinculadas a la clase, no a los objetos de instancia de la clase. Cada objeto de instancia comparte la misma variable estática. Es decir, una clase solo tiene una variable estática, sin importar cuántos objetos tenga. Las variables de clase o las variables estáticas se declaran a través de la palabra clave Static. Las variables de clase generalmente se usan como constantes. Las variables estáticas generalmente se accede por nombres de clases. Cuando el programa se esté ejecutando, esta variable se creará hasta que el programa esté terminado y no se destruirá. El alcance de las variables de clase es el mismo que el de las variables de instancia. Su valor inicial es el mismo que las variables miembros. Cuando la variable no se inicializa, habrá un valor predeterminado de acuerdo con su tipo de datos. Del mismo modo, los métodos estáticos son métodos que pertenecen a clases, no a objetos de clase. Sus llamadas no actúan sobre los objetos de clase, y no necesitan crear instancias de clase. Los métodos estáticos en sí son finales, porque la reescritura solo ocurrirá en instancias de clase. Los métodos estáticos están vinculados a la clase, no a los objetos. Los métodos estáticos de la clase principal estarán bloqueados por los métodos estáticos de la clase infantil, siempre que el método original no se declare como final. Los métodos no estáticos no pueden anular los métodos estáticos, es decir, no puede cambiar un método estático en un método de instancia en una subclase.
Las variables no estáticas tienen una copia separada del valor en cada instancia de objeto.
Pregunta: ¿Cuál es la diferencia entre el operador y el operador &&?
Respuesta: Cuando se evalúa una expresión, ambos operandos serán evaluados, y && es más como un atajo para un operador. Cuando una expresión && se evalúa, el primer operando se calcula primero, y si devuelve verdadero, se calculará el segundo operando. Si el primer operando se toma como falso, el segundo operando no será evaluado.
Pregunta: ¿Cómo maneja Java el desbordamiento y el bajo flujo de enteros?
Respuesta: Java almacena los bytes de orden bajo correspondientes en el resultado del cálculo en el valor correspondiente de acuerdo con el tamaño del tipo.
Pregunta: ¿Qué sucede si el vacío estático público está escrito como vacío público estático?
Respuesta: El programa se compila y se ejecuta normalmente.
Pregunta, ¿cuál es la diferencia entre declarar variables y definir variables?
Respuesta: Declarar variables Solo proporcionamos el tipo y el nombre de la variable y no lo inicializamos. La definición incluye dos etapas: cadena de declaración e inicialización S; solo declaración variable, cadena s = nueva cadena ("bob"); o cadena S = "Bob"; es definición variable.
Pregunta: ¿Qué tipo de parámetro es compatible con Java?
Respuesta: Los parámetros de Java son todos valores aprobados. Para un objeto, el valor aprobado es una referencia al objeto, es decir, la copia de la referencia original y la referencia del parámetro apuntan al mismo objeto.
Pregunta: ¿Cuáles son los principios de encapsulación de objetos?
Respuesta: La encapsulación es vincular los datos y el código que opera los datos a una unidad separada. Esto garantiza la seguridad de los datos y evita el uso incorrecto del código externo. Los objetos permiten que los programas y los datos se encapsulen para reducir la interferencia potencial. Otra comprensión de la encapsulación es actuar como una capa protectora para los datos y el código para evitar el acceso aleatorio al código fuera de la capa protectora.
Pregunta: ¿Cómo entiendes las variables?
Respuesta: Una variable es un área de memoria con nombre para el acceso del programa. Las variables se utilizan para almacenar datos y, a medida que se ejecuta el programa, los datos almacenados también pueden cambiar.
Pregunta: ¿Qué es la mejora numérica?
Respuesta: La mejora numérica se refiere a la conversión de datos de un tipo de datos más pequeño a un tipo de datos más grande para operaciones enteras o de puntos flotantes. Durante el proceso de aumento numérico, el byte, Char, los valores cortos se convertirán en tipo int. Cuando sea necesario, el tipo int también se puede promover a largo. Largo y flotante se pueden convertir a tipos dobles.
Pregunta: ¿Cuál es la conversión de tipo de Java?
Respuesta: la conversión de un tipo de datos a otro se llama conversión de tipo. Java tiene dos tipos de métodos de conversión, uno es la conversión de tipo explícito y el otro está implícito.
Pregunta: ¿Cuál es el primer parámetro de la matriz de cadenas en los parámetros del método principal?
Respuesta: La matriz está vacía, sin ningún elemento. A diferencia de C o C ++, el primer elemento es el nombre del programa de forma predeterminada. Si la línea de comandos no proporciona ningún parámetro, la matriz de cadenas en el método principal está vacía, pero no nula.
Pregunta: ¿Cómo determinar si una matriz es nula o vacía?
Respuesta: El valor de salida de Array.length. Si es 0, la matriz está vacía. Si es nulo, se lanzará una excepción de puntero nulo.
Pregunta: ¿Se puede permitir que múltiples clases poseer al mismo tiempo y tener métodos principales en el programa?
Respuesta: Sí. Cuando se ejecute el programa, especificaremos el nombre de clase de ejecución. El JVM solo buscará métodos principales en la clase que especificó. Por lo tanto, no hay conflicto de nombres entre múltiples clases que tienen métodos principales.
Pregunta: ¿Cuándo se cargan las variables estáticas? Compilar o ejecutar tiempo de ejecución? ¿Cuál es el momento de la carga del bloque de código estático?
Respuesta: Cuando el cargador de clase carga la clase en el JVM, se crearán variables estáticas, lo que no tiene nada que ver con si se crea el objeto. El espacio de memoria se asignará cuando se carguen variables estáticas. El código del bloque de código estático solo se ejecutará una vez cuando la clase se inicialice por primera vez. Una clase puede tener múltiples bloques de código estáticos, no es un miembro de la clase, no tiene valor de retorno y no puede llamarse directamente. Los bloques de código estático no pueden contener esto o Super, generalmente se inicializan con variables estáticas.
Pregunta: ¿Puede una clase tener múltiples métodos principales?
Respuesta: Sí, pero solo un método principal tiene la siguiente firma:
public static void main (string [] args) {}
De lo contrario, el programa no se compilará. El compilador le advertirá que el método principal ya existe.
Pregunta: Permítanme presentar brevemente cómo funciona JVM.
Respuesta: JVM es una computadora abstracta. Al igual que una computadora real, primero compilarán el archivo .java en un archivo .class (el archivo .class es el archivo bytecode) y luego usarán su intérprete para cargar el bytecode.
Pregunta: ¿Qué pasa si los valores de dos variables se intercambian en su lugar?
Respuesta: Primero agregue dos valores y asigne valores a la primera variable, luego reste la segunda variable del resultado y asigne valores a la segunda variable. Luego reste la segunda variable con la primera variable y asigne el valor a la primera variable al mismo tiempo. El código es el siguiente:
int a = 5, b = 10; a = a+b; b = AB; a = ab;
Use Xor para cambiar. El primer método también puede causar desbordamiento. El método de XOR es el siguiente: int a = 5, b = 10; a = a+b; b = AB; a = ab;
int a = 5; int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
Pregunta: ¿Qué es la encapsulación de datos?
Respuesta: Una forma de encapsular los datos es crear establecer y obtener métodos en la clase para acceder a las variables de datos del objeto. En términos generales, las variables son privadas, mientras que los métodos GET y SET son públicos. La encapsulación también se puede usar para verificar los datos al almacenar datos, o calcular datos, o usarlos como introspección (como el uso de javabeans en puntales). La encapsulación de datos y funciones en una estructura separada se denomina encapsulación de datos. La encapsulación en realidad está encapsulando los datos y los métodos de operación asociados en una unidad independiente, de modo que se pueda acceder a los datos utilizando estos métodos asociados. La encapsulación proporciona seguridad de datos, que en realidad es una forma de ocultar datos.
Pregunta: ¿Cuál es la API de reflexión? ¿Cómo se implementa?
Respuesta: La reflexión se refiere a la función de poder ver el estado y las características de una clase durante el tiempo de ejecución y poder realizar una gestión dinámica. Estas funciones se proporcionan a través de algunas API de reflexión de clase incorporadas, como clase, método, campo, constructores, etc. Ejemplo de uso: use el método GetName de la API de reflexión Java para obtener el nombre de la clase.
Pregunta: ¿Mantendrá el JVM el caché? ¿Está asignado objetos en el montón, o el montón del sistema operativo o el montón administrado por el JVM mismo? ¿Por qué?
Respuesta: Sí, el JVM en sí mismo gestiona el caché, que crea objetos en el montón y luego hace referencia a esos objetos en la pila.
Pregunta: ¿Qué es la memoria virtual?
Respuesta: La memoria virtual también se llama memoria extendida, y en realidad no hay memoria física real.
Pregunta: ¿Puede el método ser estático y sincronizado al mismo tiempo?
Respuesta: Sí. Si hace esto, el JVM adquiere el bloqueo en la instancia java.lang.class asociada con este objeto. Hacerlo es igual a:
sincronizado (xyz.class) {
}
Pregunta: ¿Cuál es la diferencia entre String y StringTokenizer?
Respuesta: StringTokenizer es una clase de herramientas utilizada para dividir cadenas.
StringTokenizer st = new StringTokenizer ("Hello World"); while (St.HasMoretokens ()) {System.out.println (St.NextToken ());}
Producción:
Hola
Mundo
Pregunta: ¿Cuáles son las características de las variables transitorias?
Respuesta: La variable transitoria no se serializa. Por ejemplo, cuando una clase que implementa la interfaz serializable se es serializada al objeto Stream, las variables de tipo transitorio no se escribirán en la secuencia. Al mismo tiempo, cuando se deserializa, el valor variable correspondiente es nulo.
Pregunta: ¿Qué contenedores usan el diseño del borde como su diseño predeterminado?
Respuesta: ventana, marco, diálogo.
Pregunta: ¿Cómo entender qué es la sincronización?
Respuesta: La sincronización se utiliza para controlar el acceso de recursos compartidos entre múltiples hilos para garantizar que solo un hilo pueda acceder a este recurso al mismo tiempo. En un programa múltiple protegido asincrónicamente, cuando un hilo está modificando una variable compartida, otro hilo también puede usar o actualizar su valor. La sincronización evita la generación de datos sucios.
Sincronizar los métodos:
Public sincronizado Void Method1 () {// Código relacionado con el método apropiado.}Sincronice los bloques de código dentro del método:
public myFunction () {sincronizado (this) {// código sincronizado aquí. }}Lo anterior es una compilación de la información para las preguntas de la entrevista de Java. Continuaremos agregando información relevante en el futuro. ¡Gracias por su apoyo a este sitio!