Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

360
Vistas
¿El Classloader es parte de la JVM o está en el JRE?

Soy relativamente nuevo en Java, así que perdóname si esta pregunta puede parecer "tonta". Sé que la JVM (Java Virtual Machine) está contenida en el JRE (Java Runtime Environment) , pero no estoy seguro de si el cargador de clases y el motor de ejecución forman parte de la JVM.

La mayoría de las fuentes que he leído no especifican esto. En cambio, cuando describen los componentes de JVM, solo analizan los 5 componentes del área de datos de tiempo de ejecución (es decir, montón, pila de JVM, área de método, registros de PC y pila de método nativo) . Aunque mi sentido común dice que para que sea una máquina virtual completa, necesita la entrada, la memoria y el procesamiento, todavía necesito verificar las ubicaciones exactas de estos componentes.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Según la wikipedia de Classloader , hay 3 tipos de cargadores de clases en JRE:

  1. Cargador de clases Bootstrap

Este cargador de clases, que forma parte de la JVM principal, está escrito en código nativo.

  1. Cargador de clases de extensiones

Es implementado por la clase sun.misc.Launcher$ExtClassLoader

  1. cargador de clases del sistema

Esto lo implementa la clase sun.misc.Launcher$AppClassLoader

Entonces, en conclusión, creo que el primero está en JVM, los otros 2 están en las bibliotecas JRE.

  • también hay algunos cargadores de clases definidos por el usuario que se encuentran en diferentes lugares (por ejemplo, Tomcat, etc.)
over 4 years ago · Santiago Trujillo Denunciar

0

No creo que sea posible hacer una distinción clara.

JRE es el nombre de un tipo de distribución de Java, que (por cierto) Oracle ya no proporciona.

JVM (máquina virtual Java) es un término más abstracto. Se refiere a "una cosa que ejecuta programas Java". En términos prácticos, consta de un núcleo escrito en código nativo y una gran cantidad de código Java. Pero no hay una línea clara trazada entre la máquina virtual y las bibliotecas que admiten la máquina virtual y otras que son "parte de Java" que ejecuta la máquina virtual.

La clase java.lang.Classloader es un buen ejemplo de esto. Parte de ella está escrita en Java. Otras partes son métodos de código nativo proporcionados por el núcleo de código nativo de JVM. Todas las demás clases de cargadores de clases extend ClassLoader . Algunos son parte de la biblioteca estándar y otros pueden provenir de bibliotecas o marcos de terceros, o pueden ser implementados por la propia aplicación.

Luego está el cargador de clases de arranque que está completamente escrito en código nativo y comparte el código con los métodos de código nativo de ClassLoader .

En resumen, no creo que sea posible obtener una respuesta clara. Y no creo que intentar o tener éxito en trazar una línea dura alrededor de la JVM realmente logre algo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda