一: 类加载的时机
1: 加载 java虚拟机中并没有进行强制约束
2:初始化时机,只有下面5种情况,new关键字,反射调用,继承,虚拟机主类的main,动态语言句柄(groovy)
二: 过程
1: 加载 : 将类全限定名生成class,将class文件存储内容加载内存中,方法区中生成Class对象
2: 验证 : 看看虚拟机版本是否满足
3: 准备 : 初始化类变量
4: 解析 : 将常量池中的符号引用,改变为直接引用
5: 初始化 根据程序员设置去初时化变量
6: 使用
7:卸载
三、类加载器
用于实现类加载动作,可以比较两个类Class是否相等,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源同一个class文件,被同一个虚拟机加载,类也可能不同。
1: 启动类加载器 java_home\lib
2: 扩展类加载器 java_home\lib\ext
3: 应用程序类加载器
相关推荐
《 从NoSuchMethodError看jvm编译和class加载方式》的测试项目代码
动态编译字符串成java,并且添加class到jvm
class文件热加载,上传class文件实现热加载
java热加载Class文件
java热加载Class文件.zipjava热加载Class文件.zipjava热加载Class文件.zip
这样,每次调用代理类中的方法,都会先检查实现类的class文件是否是最新的,如果不是则重新加载,达到动态加载实现类class的目的。 关键字: Java实现热加载; Java动态加载class; Java覆盖已加载的class; Java...
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 .
第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: class文件及类加载详解-01第2节: ...
java 类加载器 class loaderjava 类加载器 class loaderjava 类加载器 class loaderjava 类加载器 class loaderjava 类加载器 class loaderjava 类加载器 class loaderjava 类加载器 class loader
一个动态加载android 的class框架, 过程是先解压一个完全的apk,然后创建自己的dexclassloader,然后动态加载指定的activity的过程
NULL 博文链接:https://ldbjakyo.iteye.com/blog/1046984
你可以创建个新的class loader,然后用loadClass加载,再newInstance;原来加载的classloader是不能重新加载的;这算是一个典型的容器思路。 《深入理解java虚拟机》 2、对java“书写一次,到处运行”(Write once, ...
NULL 博文链接:https://name327.iteye.com/blog/1554558
JVM加载class文件的原理机制 Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中
NULL 博文链接:https://zheng12tian.iteye.com/blog/1488813
前端开源库-load-class加载类,从目录加载类方法。
NULL 博文链接:https://listen-raining.iteye.com/blog/1894456
在在不重启tomcat的情况下重新加载类 的一个小例子
javac编译成功用java运行class文件出现“找不到或无法加载主类”的问题解决起来很简单.doc
看懂App加载Class的顺序和Method的顺序.zip,用于在使用应用程序时打印其结构