2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

听 GPT 讲 client-go 源代码 (5)

fliter

WorkPlus助力企业实现无缝沟通与协作的IM平台

BeeWorks

总结

大肚皮狒狒

打造安全可靠的阅后即焚聊天平台,保护你的隐私

BeeWorks

利用预训练模型优化大模型训练

百度开发者中心

人工智能 深度学习 大模型

Sora:新一轮产业技术革命的爆发点

老张

人工智能 sora

Spring事务实现原理

京东科技开发者

vben-admin 配置代理转发

麦兜

MVP实战:再造一个“支付宝”

agnostic

软件架构 MVP 架构设计实战

从API到界面:如何将淘宝/天猫商品详情返回值转化为用户友好的展示

Noah

哎呀,当时怎么没有想到 | 京东云技术团队

京东科技开发者

为企业提供个性化的企业门户解决方案,让团队高效协同

BeeWorks

听 GPT 讲 client-go 源代码 (6)

fliter

activiti工作流代码整合流程详解及源码示例-低代码平台

金陵老街

Canvas库 fabric.js可以实现哪些功能? 动图介绍

秦少卫

开源项目 Fabric.js 图片编辑器 canvas库

C++——数据类型笔记

不在线第一只蜗牛

c++ 数据库 开发语言

LLMops:大模型时代的运维与部署之道

百度开发者中心

人工智能 运维 大模型 LLM

solana生态市值机器人

区块链技术

你的新春照小红书包了!速来定制新春头像,技术让年味更浓

小红书技术REDtech

AI AIGC AI写真

开放签电子签章2024年第一季度目标

开放签开源电子签章

Java Spi是如何找到你的实现的? ——Java SPI原理与实践

骑牛上青山

Java jdk spi

大模型训练、多模态数据处理与融合:从理论到实践

百度开发者中心

人工智能 大模型训练 大模型

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