Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Qué preguntas técnicas se les pueden hacer a los recién graduados durante las entrevistas para puestos relacionados con Java?

¿Qué preguntas técnicas se les pueden hacer a los recién graduados durante las entrevistas para puestos relacionados con Java?

Preguntas comunes sobre Java

1. ¿Qué es la máquina virtual Java? ¿Por qué se llama a Java un "lenguaje de programación independiente de la plataforma"?

La máquina virtual Java es un proceso de máquina virtual que ejecuta 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 está diseñado para permitir que las aplicaciones se ejecuten en cualquier plataforma sin necesidad de que los programadores las reescriban o recompilen individualmente para cada plataforma.

La máquina virtual Java puede hacer esto porque conoce la longitud de las instrucciones y otras características de la plataforma de hardware subyacente.

2. ¿Cuál es la diferencia entre JDK y JRE?

Java Runtime Environment (JRE) es una máquina virtual Java que ejecuta programas Java. También contiene el complemento del navegador de subprogramas necesario para la ejecución. Java Development Kit (JDK) es un completo kit 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.

3. ¿Cuál es el significado de la palabra clave "estática"? ¿Es posible anular métodos privados o estáticos en Java?

La palabra clave "estática" indica que se puede acceder a variables miembro o métodos sin variables de instancia de la clase a la que pertenecen.

Los métodos estáticos no se pueden anular en Java porque la anulación de métodos se basa en un enlace dinámico en tiempo de ejecución, mientras que los métodos estáticos se enlazan estáticamente en tiempo de compilación.

4. ¿Se puede acceder a variables no estáticas en un entorno estático?

Las variables estáticas pertenecen a clases en Java y tienen el mismo valor en todas las instancias. Cuando la máquina virtual Java carga una clase, se inicializan las variables estáticas. Si su código intenta acceder a variables no estáticas sin utilizar una instancia, el compilador se quejará porque las variables no se han creado ni asociado con ninguna instancia.

5. ¿Qué tipos de datos admite Java? ¿Qué es el unboxing automático?

Los ocho tipos de datos básicos soportados por Java son:

Byte

Corto

Entero

Largo

Número de punto flotante

Número doble

Tipo booleano

Carácter

El unboxing automático es que el compilador Java es el proceso de creación de un cuadro con variables. La encapsulación es la conversión realizada por el compilador de Java entre tipos de datos básicos y los tipos de encapsulación de objetos correspondientes. Por ejemplo: convertir int a entero, doble a doble, etc. Lo opuesto a esto es el unboxing automático.

6. ¿Qué significan la anulación y la sobrecarga de métodos en Java?

La sobrecarga de métodos en Java significa que dos o más métodos en la misma clase tienen el mismo nombre de método pero diferentes parámetros. Por el contrario, la sobrecarga de métodos significa que la subclase redefine el método de la clase principal. Las sobrecargas de métodos deben tener el mismo nombre de método, lista de parámetros y tipo de retorno. Un anulador no debe restringir el acceso a sus métodos anulados.

7. ¿Qué es un constructor en Java? ¿Qué es la sobrecarga del constructor? ¿Qué es un constructor de copias?

El constructor se llama cuando se crea un nuevo objeto. Cada clase tiene un constructor. Si el programador no proporciona un constructor para la clase, el compilador de Java crea un constructor predeterminado para la clase.

La sobrecarga de constructores en Java es muy similar a la sobrecarga de métodos. Una clase puede crear múltiples constructores. Cada constructor debe tener su propia lista de parámetros única.

Java no soporta constructores de copia como lo hace C, la razón de esta diferencia es que Java no crea un constructor de copia predeterminado si no escribes el tuyo propio.

8. ¿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.

9. ¿Cuál es la diferencia entre interfaz y clase abstracta?

Java proporciona y soporta la creación de clases e interfaces abstractas. Sus implementaciones son extremadamente similares, pero la diferencia es:

Todos los métodos en la interfaz son implícitamente abstractos. Una clase abstracta puede contener métodos abstractos y no abstractos.

Una clase puede implementar muchas interfaces, pero solo puede heredar de una clase abstracta

Para implementar una interfaz, una clase debe implementar todos los métodos declarados por la interfaz. Sin embargo, es posible que una clase no implemente todos los métodos declarados por una clase abstracta y, por supuesto, en este caso, la clase también debe declararse como abstracta.

Las clases abstractas pueden implementar interfaces sin proporcionar implementaciones de métodos de interfaz.

Las variables declaradas en las interfaces Java son finales por defecto. Las clases abstractas pueden contener variables no finales.

Las funciones miembro en las interfaces Java son funciones 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. Tampoco se puede crear una instancia de una clase abstracta, pero si contiene un método principal, se puede llamar.

Vea también la diferencia entre clases abstractas e interfaces en JDK8

10. ¿Qué son el paso por valor y el paso por referencia?

Pasar un objeto por valor significa pasar una copia del objeto. Por lo tanto, incluso si la copia del objeto cambia, el valor del objeto fuente no se verá afectado.

Pasar un objeto por referencia significa que lo que se pasa no es el objeto real, sino una referencia al objeto. Por lo tanto, los cambios realizados externamente en el objeto al que se hace referencia se reflejan en todos los objetos.

Hilo de Java