关于Java虚拟机的类装载器问题

问题描述

Java虚拟机有两个概念,用户自定义类装载器,和启动类装载器,到底是什么?求具体解释

解决方案

解决方案二:
google一下再来问吧找下jvm规范
解决方案三:
从字面上理解,启动类装载器,应该是装载JAVA自带类的用户自定义类装载器,应该是装载你写的程序的错了别砸我……
解决方案四:
类装载器是这样的你写程序需要类这些类是通过类装载器加入到内存中创建对象的去的,默认情况下虚拟机会用默认的装载器控制类装载的顺序如果你不满意虚拟机自带的装载器可以自己实现

时间: 2024-12-23 13:56:15

关于Java虚拟机的类装载器问题的相关文章

java虚拟机学习笔记

笔记 1.编译顺序:                 编译器                     虚拟机      虚拟机          java源文件*.java------->字节码*.class------>类装载器--->执行引擎 一个.class文件只能包含一个类或接口.因此.java文件中定义了多少类,编译时就会生成多少.class文件(内部类不算). 2.java程序可以选择两种方式访问底层系统,由程序员选择:(1).通过java程序调用javaapi调用本地方法,

Java虚拟机类装载的原理及实现

一.引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程.JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行.本文将分析JVM中的类装载系统,探讨JVM中类装载的原理.实现以及应用. 二.Java虚拟机的类装载实现与应用 2.1 装载过程简介 所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程,其中类或接口的名称是

Java虚拟机的研究与实现

摘 要 本文在研究kaffe的基础上,吸收kaffe虚拟机的主要思想,用C语言作为开发语言,采用了及时编译器作为执行引擎,实现了一种Windows平台下的Java虚拟机.然后对实现过程中的一些关键技术如class文件验证.及时编译器.垃圾收集器.线程同步和线程调度等做了分析. 关键词 kaffe; C语言; 及时编译器;Java虚拟机 引言 Java虚拟机本质是就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令.Java语言的可移植性正是建立在Java虚拟机的基础上.任

java虚拟机构造原理

Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序.程序开始执行时他才运行,程序结束时他就停止.你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机. Java虚拟机总是开始于一个main()方法,这个方法必须是公有.返回void.直接受一个字符串数组.在程序执行时,你必须给Java虚拟机指明这个包换main()方法的类名. Main()方法是程序的起点,他被执行的线程初始化为程序的初始线程.程序中其他的线程都由他来启动.Java中的线程分为两种:

深入Java虚拟机(1)——Java体系结构

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] Java体系结构 Java体系结构包括四个独立但相关的技术: 1.Java程序设计语言 2.Java class文件格式 3.Java应用编程接口(API) 4.Java虚拟机 当编写并运行一个Java程序时,就同时使用了这四种技术.用Java程序设计语言编写源代码,把它编译成Java class文件,然后在java虚拟机中运行class文件.当编写程序时,通过调用实现了J

《深入解析Android 虚拟机》——2.2 Java虚拟机概述

2.2 Java虚拟机概述 Java虚拟机(JVM)是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的.Java虚拟机有自己完善的硬件架构,如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM虚拟机的运作结构如图2-1所示. 从该图中可以看到,JVM是运行在操作系统之上的,与硬件没有直接的交互.JVM的具体组成部分如图2-2所示. (1)使用JVM的原因. Java语言的一个非常重要的特点就是与平台的无关性.而使用JVM是实现这一特点的关键.一般的高级语言如果要在

深入Java虚拟机——类型装载、连接(转)

来自http://hi.baidu.com/holder/item/c38abf02de14c7d31ff046e0     Java虚拟机通过装载.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.其中,装载就是把二进制形式的Java类型读入Java虚拟机中:而连接就是把这种已经读入虚拟机的二进制形式的类型数据合并到虚拟机的运行时状态中去.连接阶段分为三个子步骤--验证.准备和解析."验证"步骤确保了Java类型数据格式正确并且适于Java虚拟机使用而&quo

Java虚拟机体系结构

JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序.当启动一个Java程序时,一个虚拟机实例也就诞生了.当该程序关闭退出,这个虚拟机实例也就随之消亡.如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例.每个Java程序都运行于它自己的Java虚拟机实例中. Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序.而这个main()方法必须是共有的(public).静态的(static).返回值为void,并且接受

深入Java虚拟机读书笔记[8:9]

第八章 连接模型 1. 动态连接和解析 每个类或者接口都编译为独立的class文件,他们之间通过接口(Harbor)符号相互联系,或者与Java API class文件相联系.class文件把所有引用符号保存在常量池,每一个class文件有一个常量池,被装载的类或者接口有一份内部版本的运行时常量池.常量池解析:根据符号查找到试题,把符号替换成直接引用.JDBC通常用forName装载时因为传递第三个参数为true时可以确保类被初始化,静态初始化方法会在DriverManger中被注册驱动程序.