写点什么

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

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

关注

评论

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

QCN9274+QCN9074 chip: efficient and stable Wi-Fi 6 solution

wifi6-yiyi

wifi6 WiFi7

用ChatGPT挣钱的五种思路

高端章鱼哥

机器人 零售行业 ChatGPT

高性能网络设计秘笈:深入剖析Linux网络IO与epoll

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

小动作牵动大文明,“大运空瓶行动”从你我做起

新消费日报

ChatGPT赋能Scrum实践

俞凡

人工智能 Scrum 敏捷开发 ChatGPT

百度 APP iOS 端包体积 50M 优化实践 (四) 代码优化

百度Geek说

ios 代码优化 企业号 7 月 PK 榜

ChatGPT助力DevOps的优势与局限

互联网工科生

DevOps 自动化运维 ChatGPT

国赛线下开赛!全国智能车百度智慧交通创意组区域赛今日正式拉开帷幕!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

3D云渲染的优点和缺点是什么?

Finovy Cloud

DDD架构为什么应该首选六边形架构? | 京东云技术团队

京东科技开发者

分层架构 架构设计 企业号 7 月 PK 榜 六边形架构

计算机视觉和滤帧技术

鲸品堂

计算机视觉 图像 企业号 7 月 PK 榜

自动化接口回归测试神器 AREX 使用初体验

AREX 中文社区

自动化测试 AWS 流量回放

TDengine 的查询性能与老牌时序数据库相比如何?来看看

爱倒腾的程序员

数据库

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

字节跳动数据平台

大数据 数据中台 数据研发

亚信科技荣任「DBL电信行业工作组」副组长单位,AntDB数据库连年入选《中国数据库产品图谱》

亚信AntDB数据库

AntDB 数据库· AntDB数据库 企业号 7 月 PK 榜

认识高性能服务治理框架 Kmesh

openEuler

Linux 开源 操作系统 openEuler 服务网格

缕析条分Scroll属性 | 京东云技术团队

京东科技开发者

前端 DOM ScrollView ScrollView(滚动条) 企业号 7 月 PK 榜

Last Week in Milvus

Zilliz

Milvus Zilliz AIGC cvpstack

只有1%的人才知道的ChatGPT写作技巧

俞凡

人工智能 ChatGPT

直播回顾|用户增长之路,如何兼具体验和点击率?

HarmonyOS SDK

HMS Core

IPQ8072|XGS-PON|Dual Band 10GbE Wifi6 Industrial SBC DR8072V01

wallyslilly

安装Ingress-Nginx

tiandizhiguai

云原生 k8s

直播软件源码开发搭建提高安全性方案——山东布谷科技创作

山东布谷科技

源码 软件 软件开发 直播 源码搭建

Debian11系统编译安装Redis教程。

百度搜索:蓝易云

redis 云计算 Linux 运维 Debian

LeetCode题解:2618. 检查是否是类的对象实例,使用instanceof

Lee Chen

JavaScript LeetCode

Debian11系统编译安装Memcached教程。

百度搜索:蓝易云

memcached 云计算 Linux 运维 Debian

聊聊Spring注解@Transactional失效的那些事 | 京东云技术团队

京东科技开发者

spring Transactional @Transactional 企业号 7 月 PK 榜 注解失效

MobPush Android For Unity

MobTech袤博科技

开发者 前端 Unity Android; Java’

ChatGPT的探索与实践-业务应用篇 | 京东云技术团队

京东科技开发者

人工智能 ChatGPT 企业号 7 月 PK 榜

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