当前位置: 首页 > news >正文

【学习笔记】深入理解Java虚拟机学习笔记——第9章 类加载及执行子系统的案例与实战

第9章 类加载及执行子系统的案例与实战

9.1 概述

程序能控制的主要是字节码生成与类加载器这两部分

9.2 案例分析

9.2.1 Tomcat:正统的类加载器架构

Tomcat通过不同路径及不同类加载器来实现类使用时的共享与隔离

9.2.2 OSGi:灵活的类加载器架构

通过将依赖类委派给相关类加载器来实现模块化(此时打破了双亲委派模型)
Bundle A 引用了Bundle B的公开Package时,由以上行为实现

9.2.3 字节码生成技术与动态代理的实现

动态代理接口生成代理类,在执行generateProxyClass()方法时动态生成字节码

9.2.4 Backport工具:Java的时光机器

Retrotrasslator可以使lambda与try-respirces语法转变为JDK5、6、7中的形式

9.3 实战:自己动手实现远程执行功能

1>Arthas:动态修改某一部分运行代码
2>compller API:动态编译Java程序
3>内置脚本执行引擎
4>内置动态执行功能

9.3.1 目标

P349

9.3.3 实现

P350

【Arthas如何用自己的代码访问到程序方法:
JDK1.6之后提供了JVM进程间的通信协议,使Arthas的进程可Attach到目标进程,此外JDK1.6还提供了agdent,可以代理目标进程,通过类加载机制加载字节码,可以实现动态的类替换,从而实现运行时对类的增强】

http://www.dtcms.com/a/251831.html

相关文章:

  • C语言进阶:深度解剖数据在内存中的存储(浮点型在内存中的存储)
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 2.RMII的时钟模式
  • Python训练营打卡 Day54
  • 【LangChain】5 评估
  • WebAssembly 2.0:超越浏览器的全栈计算革命
  • 修改Rocky Linux文件夹颜色
  • LLM对话框项目 EventSource封装和MessageServiceClass流式展示封装
  • Spring Boot的Security安全控制——应用SpringSecurity!
  • 关于脉冲功率技术的认识
  • 子集筛选(Select by Data Index)组件研究
  • 贝塞尔曲线的切矢量
  • Java事务隔离问题详解:脏读、不可重复读与幻读(含解决方案)
  • 【算法 day03】LeetCode 203.移除链表元素 | 707.设计链表 | 206.反转链表
  • 【Elasticsearch】文档(一):新增 删除
  • db2主从同步 逻辑复制 APPLY_THROTTLE参数
  • 【CompletableFuture】基础Future (一)
  • 车载诊断框架 --- TCP window size设置
  • Kubernetes架构解析
  • Rviz2中,在rviz和launch文件中都需要配置urdf文件,二者作用上的区别?
  • 【工具教程】如何批量识别大量图片的文字并重命名图片,图片文件批量文件识别改名的详细操作步骤和注意事项
  • 水果商城管理系统笔记
  • [深度学习]目标检测YOLO v3
  • C语言状态机:从入门到精通
  • 英语~四级CET4考试——入栏需看
  • Chapter12-API testing
  • 「Linux文件及目录管理」文件及目录操作类命令
  • 【Zephyr 系列 26】跨平台测试框架设计:CLI + 自动脚本 + OTA 校验一体化方案
  • 【项目】仿muduo库one thread one loop式并发服务器前置知识准备
  • 【项目实训】【项目博客#06】大模型微调与推理优化(4.21-5.11)