写点什么

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:001153
用户头像

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

关注

评论

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

成千上万个站点,日数据过亿的大规模爬虫是怎么实现的?

穿甲兵

Python redis 爬虫

解密智联招聘的大前端架构Ada

智联大前端

Serverless 大前端 开发工具

我是如何使计算时间提速25.6倍的

白日梦想家

Python 代码优化 Numpy 代码加速

源码 | 浅谈Webpack原理,以及loader和plugin实现。

梁龙先森

大前端 webpack

第六周-作业

jizhi7

身为程序员还记得C语言经典算法(附带答案)吗?

ShenDu_Linux

c c++ 算法 编程语言

第十周课后练习

饭桶

week6-学习总结

未来已来

Effective go 笔记-01

邵俊达

Effective-go Go 语言

架构师训练营第十周学习笔记

一马行千里

学习 极客大学架构师训练营

CAP原理

如何高效的使用并行流

Silently9527

java8 java 并发

Python进阶——如何正确使用yield?

Kaito

Python

接口测试如何在json中引用mock变量

测试人生路

json 接口测试 Mock

week6-命题作业

未来已来

40 张图带你搞懂 TCP 和 UDP

cxuan

计算机网络 计算机基础 计算机

智慧公安大数据可视化分析系统搭建

t13823115967

2020双11,Dubbo3.0 在考拉的超大规模实践

阿里巴巴云原生

阿里云 开源 云原生 dubbo

架构师训练营第 1 期第 10 周总结

owl

极客大学架构师训练营

第六周-总结

jizhi7

极客大学架构师训练营

第06周 CAP 原理

Airship

极客大学架构师训练营

第 06 周学习总结

Airship

极客大学架构师训练营

智慧公安二维码定位报警系统开发

t13823115967

第十周学习总结

饭桶

腾讯云轻量应用服务器 SSH 配置

邵俊达

SSH 轻服务器

除了梦里什么都有之外,我想可以让现实生活中也可以有点什么。

叶小鍵

日本 健康 川村昌嗣 瘦身 走路 运动

第四代Express框架koa简介

程序那些事

nodejs 异步编程 koa Express 程序那些事

shell脚本的使用该熟练起来了,你说呢?(篇一)

良知犹存

Linux shell脚本编写

云算力矿机系统开发,区块链挖矿平台搭建

薇電13242772558

区块链 云算力

架构师训练营第 1 期第 10 周作业

owl

极客大学架构师训练营

Appium上下文和H5测试(二)

清菡软件测试

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