Java热加载

本文介绍了Java热加载的概念,它允许开发者在不重启服务的情况下更新代码。热加载与热部署的区别在于,热部署涉及整个项目的重新部署,而热加载仅重新加载类。文章详细阐述了热加载的实现思路,利用Java的类加载机制避开双亲委派,并通过实例展示了如何进行热加载。此外,还提供了相关阅读材料以深入理解Java热部署和热加载。
摘要由CSDN通过智能技术生成

什么是热加载

热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环境。

热加载和热部署的区别

首先,不管是热加载还是热部署,都可以在不重启服务的情况下编译/部署项目,都是基于 Java 的类加载器实现的。那么两者到底有什么区别呢?

  • 热部署是在服务器运行时重新部署项目。
  • 热加载是在运行时重新加载 class

热加载实现思路

根据Java的类加载机制,我们可操作的环节只有加载阶段。同时为了避免双亲委派机制的限制,热加载类对系统加载类是不可见的(它加载过了,就变更不了啦),要通过其他加载类加载(如URLClassLoader、自定义加载器等)。

例子

热加载的接口

package com.sky.learn.hotload;

/**
 * 要热加载的类一定要有一个接口或基类引用
 * @author Administrator
 */
public interface HotLoadInf {
	public void show();
}

测试类

package com.sky.learn.hotload;

import java.i
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值