写点什么

JavaRebel:在 JVM 中动态装载类

  • 2007-10-26
  • 本文字数:479 字

    阅读完需:约 2 分钟

JavaRebel 给 Java 带来了 Ruby 和 PHP 风格的动态重新装载类特性。虽然现在还有些局限性,但它可以显著地增加开发速度。

JavaRebel 允许一个应用程序(独立的或运行在应用服务器上的应用)重新装载在运行过程中(on the fly)发生的大多数类变化,包括增加或删除方法和域。

使用字节码修正和一点“妖术”,JavaRebel 扩展了 JVM,使其具备在运行中重新装载对类的几乎任意修改的能力。包括增加和删除方法和域,唯一禁止重新加载的改变是“extends”和“implements”语句。因此,在应用和服务器所保持的所有现存对象实例可以继续运行,代码改变会立刻在应用程序中表现出来。

已发现的一些局限性包括:

  • getClass().getPackage() 返回为 null。Zeroturnaround 已经知道该问题并正在解决。
  • 不支持自定义的类装载器
  • 现在没有给资源重新装载时的执行动作提供勾子方法(hook)(例如刷新一个在 Spring 应用依赖图表中的对象)

尽管有这些限制,反馈普遍给于肯定的。Zeroturnaround 照常制作可用的每夜构建并计划不久发布一版SDK 以帮助解决一些问题(如自定义类装载器的限制问题)。

查看英文原文: JavaRebel: Dynamic Classloading in the JVM

2007-10-26 07:001679
用户头像

发布了 150 篇内容, 共 53.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL幻读到底是什么?怎么解决?

程序员拾山

MySQL

架构实战 - 模块 7 作业

mm

架构实战营 异地多活

架构实战 - 模块 8 作业

mm

消息队列 架构实战营

零代码应用搭建规范建议

明道云

加速数字化转型,天翼云携手央国企积蓄发展新动能

天翼云开发者社区

第五周作业-微博评论高性能高可用的计算架构

不爱学习的程序猿

软件测试/测试开发丨免安装免配置环境的免费 ios 调试工具 sib 来啦

测试人

软件测试 自动化测试 测试开发 ios测试

重新思考边缘负载均衡

俞凡

架构 netflix 大厂实践

厉害了!天翼云位列中国医疗云基础设施服务市场榜首

天翼云开发者社区

“天翼云杯”决赛收官!看看你pick的队伍战绩如何?

天翼云开发者社区

多活数据中心链路智能调度场景

智维数据

数据中心 DNS 智能运维 应用交付平台 可视化数据

如何减少网站卡顿的代码级别详细文章

Yestodorrow

数据可视化图表系列解析——雷达图

Data 探险实验室

数据分析 可视化 数据可视化 图表 可视化数据

软件测试/测试开发 | 接口测试中,请求超时该怎么办?

测试人

软件测试 自动化测试 接口测试 测试开发

再获认可!天翼云荣获“行业应用实践优秀合作伙伴”授牌

天翼云开发者社区

丢掉丑陋的 toast,会动的 toast 更有趣!

岛上码农

flutter ios 安卓 移动端开发 跨平台开发

MySQL:删除一张表中的前10万行数据,哪种方式效率更高?

程序员拾山

MySQL

BSN祝全体技术工作者新春快乐!

BSN研习社

将混沌实验内建到持续交付过程中提升系统稳定性

QE_LAB

混沌工程 混沌测试 测试技术

明道云零代码应用治理分层分级指南与量表

明道云

扪心自问,我们在用户旅程的投入有多匮乏?

Yestodorrow

视觉大模型训练和推理加速

百度Geek说

人工智能 深度学习 transform 企业号 1 月 PK 榜

web前端培训课程怎么选择

小谷哥

到底卡在了哪里,2023年再撒谎网慢就说不过去了

Yestodorrow

架构 可观测性 网站性能

高效学 C++|函数参数的引用传递和函数重载

TiAmo

c++ 编程语言、

百度百舸 · AI 异构计算平台,加速自动驾驶模型迭代

百度Geek说

人工智能 自动驾驶 企业号 1 月 PK 榜

培训学习前端开发技术好吗?

小谷哥

北京有哪些java培训中心

小谷哥

架构5作业

梁山伯

大数据培训课程哪家比较好

小谷哥

JavaRebel:在JVM中动态装载类_Java_Rob Thornton_InfoQ精选文章