¿Cuáles son las preguntas básicas de la entrevista sobre Java?
Las siguientes son 10 preguntas básicas de la entrevista sobre Java, con respuestas adjuntas
1. ¿Qué es la máquina virtual Java? ¿Por qué se llama a Java un "lenguaje de programación independiente de la plataforma"?
p>p>
La máquina virtual Java es un proceso de máquina virtual que puede ejecutar código de bytes de Java. Los archivos fuente de Java se compilan en archivos de código de bytes que pueden ser ejecutados por la máquina virtual Java.
Java fue diseñado para permitir que las aplicaciones se ejecuten en cualquier plataforma sin necesidad de que los programadores las reescriban o recompilen por separado para cada plataforma. La Máquina Virtual Java hace esto posible porque conoce la longitud de la instrucción y otras características de la plataforma de hardware subyacente.
2. ¿Qué significa la palabra clave "estática"? ¿Se puede anular un método privado o estático en Java?
La palabra clave "estática" indica una variable miembro o un método miembro. se puede acceder sin una variable de instancia de la clase a la que pertenece.
Los métodos estáticos en Java no se pueden anular porque las anulaciones de métodos se basan en enlaces dinámicos en tiempo de ejecución, mientras que los métodos estáticos se enlazan estáticamente en tiempo de compilación. Los métodos estáticos no están relacionados con ninguna instancia de la clase, por lo que el concepto no se aplica.
3. ¿Cuál es la diferencia entre JDK y JRE?
Java Runtime Environment (JRE) es una máquina virtual Java que ejecutará programas Java. También contiene los complementos del navegador necesarios para ejecutar el subprograma. El Java Development Kit (JDK) es un paquete completo de desarrollo de software Java, que incluye JRE, compilador y otras herramientas (como JavaDoc, depurador de Java), que permite a los desarrolladores desarrollar, compilar y ejecutar aplicaciones Java.
4. ¿Se puede acceder a variables no estáticas en un entorno estático?
Las variables estáticas pertenecen a clases en Java y sus valores son los mismos en todas las instancias. Cuando la máquina virtual Java carga una clase, las variables estáticas se inicializan. Si su código intenta acceder a variables no estáticas sin utilizar una instancia, el compilador emitirá un error porque estas variables aún no se han creado y no están asociadas con ninguna instancia.
5. ¿Cuáles son los tipos de datos admitidos por Java? ¿Qué es el unboxing automático?
Los 8 tipos de datos básicos admitidos por el lenguaje Java son: byte corto int largo flotante doble carácter booleano.
El autoboxing es una conversión realizada por el compilador de Java entre tipos de datos básicos y los tipos de empaquetado de objetos correspondientes. Por ejemplo: convertir int a entero, doble a doble, etc. De lo contrario, se desempaqueta automáticamente.
6. ¿Java admite herencia múltiple?
No, Java no admite herencia múltiple. Cada clase solo puede heredar de una clase, pero puede implementar múltiples interfaces.
7. En Java, ¿qué es un constructor? ¿Qué es la sobrecarga del constructor? ¿Qué es un constructor de copia?
Cuando se crea un nuevo objeto, se llamará al constructor. Cada clase tiene un constructor. Cuando el programador no proporciona un constructor para una clase, el compilador de Java crea un constructor predeterminado para la clase.
La sobrecarga de constructores y la sobrecarga de métodos en Java son muy similares. Se pueden crear varios constructores para una clase. Cada constructor debe tener su propia lista de parámetros única.
Java no soporta constructores de copia como en C. La diferencia es que Java no crea un constructor de copia predeterminado si no escribes tu propio constructor.
8. ¿Qué significan la anulación de métodos y la sobrecarga de métodos en Java?
La sobrecarga de métodos en Java ocurre cuando dos o más métodos en la misma clase. Este es el caso donde varios métodos tienen la misma clase. Mismo nombre de método pero diferentes parámetros. Por el contrario, la anulación de métodos significa que la subclase redefine el método de la clase principal. Las anulaciones de métodos deben tener el mismo nombre de método, lista de parámetros y tipo de retorno. Un anulador no puede restringir el acceso a los métodos que anula.
9. ¿Cuál es la diferencia entre interfaces y clases abstractas?
Java proporciona y soporta la creación de clases e interfaces abstractas. Sus implementaciones tienen lo mismo, pero la diferencia es que todos los métodos en la interfaz son implícitamente abstractos. Una clase abstracta puede contener métodos tanto abstractos como no abstractos. Una clase puede implementar muchas interfaces, pero solo puede heredar una clase abstracta. Si una clase quiere implementar una interfaz, debe implementar todos los métodos declarados por la interfaz. Sin embargo, una clase no necesita implementar todos los métodos declarados por una clase abstracta. Por supuesto, en este caso, la clase también debe declararse abstracta. Una clase abstracta puede implementar una interfaz sin proporcionar implementaciones de los métodos de la interfaz. Las variables declaradas en las interfaces Java son finales de forma predeterminada. Las clases abstractas pueden contener variables no finales. Las funciones miembro en las interfaces Java son públicas de forma predeterminada. Las funciones miembro de una clase abstracta pueden ser privadas, protegidas o públicas. Las interfaces son absolutamente abstractas y no se pueden crear instancias. No se puede crear una instancia de una clase abstracta, pero se puede llamar si contiene un método principal.
10. ¿Qué es el paso por valor y el paso por referencia?
Los objetos se pasan por valor, lo que significa que se pasa una copia del objeto. Por lo tanto, incluso si cambia la copia del objeto, el valor del objeto de origen no se verá afectado.
Los objetos se pasan por referencia, lo que significa que lo que se pasa no es el objeto real, sino una referencia al objeto. Por lo tanto, los cambios realizados externamente al objeto referenciado se reflejarán en todos los objetos.
¡Por último, te deseo mucha suerte con tu entrevista!