Saltar al contenido

¿Cómo funciona el enlazador de Java?

Este grupo de redactores ha estado por horas buscando para dar soluciones a tus dudas, te brindamos la respuesta así que nuestro deseo es serte de gran apoyo.

Solución:

No existe tal cosa como un “vinculador” de Java. Sin embargo, existe el concepto de cargador de clases que, dada una array de códigos de bytes java de “algún lugar”: puede crear una representación interna de una clase que luego se puede usar con new etc.

En este escenario, las interfaces son solo clases especiales. Los métodos y campos están disponibles cuando se ha cargado la clase.

En primer lugar: los métodos son siempre parte de una clase. Las interfaces son básicamente solo clases especiales, y los paquetes son solo una parte del nombre completo de una clase con cierto impacto en la visibilidad y la organización física de los archivos de clase.

Entonces, la pregunta se reduce a: ¿cómo vincula una JVM archivos de clase? La especificación JVM a la que se vinculó dice:

El lenguaje de programación Java permite una flexibilidad de implementación en cuanto a cuándo tienen lugar las actividades de enlace (y, debido a la recursividad, la carga), siempre que se respete la semántica del lenguaje, que una clase o interfaz esté completamente verificada y preparada antes de inicializarse, y que los errores detectados durante la vinculación se lanzan en un punto del programa donde el programa realiza alguna acción que podría requerir la vinculación a la clase o interfaz involucrada en el error.

Por ejemplo, una implementación puede optar por resolver cada referencia simbólica en una clase o interfaz individualmente, solo cuando se usa (resolución diferida o tardía), o resolverlas todas a la vez, por ejemplo, mientras se verifica la clase (static resolución). Esto significa que el proceso de resolución puede continuar, en algunas implementaciones, después de que se haya inicializado una clase o interfaz.

Por lo tanto, la pregunta solo puede responderse para una implementación de JVM específica.

Además, nunca debería marcar una diferencia en el comportamiento de los programas Java, excepto posiblemente en el punto exacto en el que los errores de vinculación dan como resultado el tiempo de ejecución. Error instancias lanzadas.

Java no vincula la forma en que lo hace C. La unidad principal es la definición de clase. Gran parte de la coincidencia de una referencia de clase con su definición ocurre en tiempo de ejecución. Entonces podría compilar una clase contra una versión de una biblioteca, pero proporcionar otra versión en tiempo de ejecución. Si las firmas relevantes coinciden, todo estará bien. Hay algunas constantes integradas en tiempo de compilación, pero eso es todo.

Tienes la posibilidad dar difusión a este artículo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *