Java类的加载过程:
1.初始化JVM(Java虚拟机);2.产生启动类的加载器;3.加载标准扩展类加载器(子类自动加载);4.加载系统类加载器(子类自动加载);5.加载class文件(父类加载)

类加载的五个阶段:
加载—》验证—》准备—》解析—》初始化
【JAVA虚拟机有且只有五种需要立即初始化】
类加载初始化阶段特点:1.final修饰的常量将会放置于常量池,调用不会触发初始化。2.反射调用未初始化的类将先初始化。3.调用子类时若父类未初始化将先初始化父类。4.主类先初始化(main方法所在的类)
Java类加载器特点:
1、由AppClass Loader(系统类加载器)开始加载指定的类
2、类加载器将加载任务交给其父,如果其父找不到,再由自己去加
3、Bootstrap Loader(启动类加载器)是最顶级的类加载器
Java类的热部署:
1、类的热加载:

2、配置Tomcat:
1)直接把项目web文件夹放在webapps里
2)在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签
3)在%tomcat_home%\conf\Catalina\localhost中添加一个XML
类加载的五个阶段:
加载 静态加载,方法区
验证
准备 赋初始值
解析
初始化
Java类的热部署
Java类的热部署的方式
类加载的五个阶段:加载 验证 准备 解析 初始化
Java类的热部署
1.类的热加载
2.配置Tomcat
Java类的加载过程
Java类的加载过程
热部署原理

12345
初始化时机五个
1new
2反射
3初始化类的时候其父类没有初始化
4主类
5static
类加载的五个阶段---加载 验证 准备 解析 初始化
热部署原理解析
java类加载过程---初始化虚拟机--产生启动类的加载器--标准类扩展加载器--系统类加载器---加载class文件
java类的热部署:
1、类的热加载

2、配置Tomcat


。。。。。。。。。

。。。。。。。。。

热部署原理解析
1、Java类的加载过程:初始化JVM(Java虚拟机)=>产生启动类的加载器=>加载标准扩展类加载器(子类自动加载)=>加载系统类加载器(子类自动加载)=>加载class文件(父类加载)

2、Java类加载的五个阶段:加载=>验证=>准备=>解析=>初始化

3、Java类加载器特点:

4、Java类的热部署的两种方式:类的热加载;配置Tomcat;

通过配置Tomcat实现热部署的三种方式:
① 直接把项目web文件夹放到webapps里;
② 在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签;
代码如下:
<Context debug="0" docBase="D:/Imooc/web" path="/hot" privileged="true" reloadable="true"/>
③ 在%tomcat_home%\conf\Catalina\localhost中添加一个XML文件;
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:Imooc/web" reloadable="true" />
通过类的热加载实现热部署
热部署原理解析
java类加载器特点
热部署原理解析
类加载的五个阶段

热部署原理解析
Tomcat热部署
热部署的两种方式
热部署的原理解析
热部署的原理解析
热部署的原理解析
热部署原理
保存 123344
Java类加载器的特点
热部署原理解析
五种情况 进行初始化
1. new getstatic getstatic invokestatic 如果类没有初始化时,必须初始化类
2 .对类进行反射调用的时候 如果类没有进行初始化 他就需要触发初始化
3. 调动类的时候 如果他的父类没有进行初始化 需要对他的父类进行初始化
4. 当虚拟机启动时,一个类包含main()方法时,当前类需要初始化
5. 但是用动态语言支持时,如果一个java.lang.invoke.MethodHandle实例后解析结果REF_putStatic,REF_getStatic,REF_invokeStatic的方法句柄时,当该方法句柄对应的类没有初始化时,需要初始化该类。
类加载的五个阶段
加载
验证
准备
解析
初始化
热部署原理解析