当前位置: 首页 > 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,可以代理目标进程,通过类加载机制加载字节码,可以实现动态的类替换,从而实现运行时对类的增强】

相关文章:

  • 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文件,二者作用上的区别?
  • 网站建设全包广/百度百度网址大全
  • 做英文简历的网站/搜狐财经峰会
  • 旅游攻略的网站怎么做/seo分析报告
  • 做类似淘宝的网站开发需要什么/seo优化公司如何做
  • 做网站兼容ie/成人教育培训机构十大排名
  • 重庆建网站多少钱/如何优化