沉淀、分享、成长,让自己和他人都能有所收获

  1. 基于JavaAgent的全链路监控二《通过字节码增加监控执行耗时》

    通过上一章节的介绍《嗨!JavaAgent》,我们已经知道通过配置-javaagent:文件.jar后,在java程序启动时候会执行premain方法。接下来我们使用javassist字节码增强的方式,来监控方法程序的执行耗时。

    2019/07/11

  2. 基于JavaAgent的全链路监控一《嗨!JavaAgent》

    全链路监控又名分布式监控系统全链路追踪,目前市面的全链路监控系统基本都是参考Google的[Dapper](https://mp.weixin.qq.com/s?__biz=MzIxMDAwMDAxMw==&mid=2650724660&idx=1&sn=0f33d3386c7652bf536cb071e9f79921&chksm=8f6138d6b816b1c0d92fb75257da4fc8ddefb7ec53dfcad98dffec87740df455cc75aa7b4a5c&token=144816615&lang=zh_CN#rd)(大规模分布式系统的跟踪系统)来做的。例如;蚂蚁金服分布式链路跟踪组件SOFATracer、Gokit微服务-服务链路追踪 、Pinpoint、Prometheus(普罗米修斯)等等。

    2019/07/10

  3. 用Java实现JVM第十章《异常处理》

    案例介绍 异常处理是java语言非常重要的一个语法,本章主要实现如何处理抛出的异常。

    2019/05/11

  4. 用Java实现JVM第九章《本地方法调用》

    案例介绍 本章主要介绍用java实现一些本地方法类库,并初始化本地方法,之后通过反射命令来调用本地方法。

    2019/05/10

  5. 用Java实现JVM第八章《数组和字符串》

    案例介绍 本章主要介绍如何实现让虚拟机处理数组和字符串,在虚拟机功能增强后,我们可以执行数组类型计算和输出字符串。本章需要新增实现数组指令;newarray、anewarray、arraylength、aload、astore、multianewarray、ldc,同时需要需要开发字符串池方法等。

    2019/05/09

  6. 用Java实现JVM第七章《方法调用和返回》

    案例介绍 本章节主要用java实现;方法调用指令、返回指令、解析方法符号引用、参数传递等。实现新的指令后我们的虚拟机就可以执行稍微复杂的运算并输出结果。

    2019/05/08

  7. 用Java实现JVM第六章《类和对象》

    案例介绍 本案例通过java代码实现jvm规范中指令集和解释器,完成后就可以开始执行1到100的加和计算。

    2019/05/07

  8. 用Java实现JVM第五章《指令集和解释器》

    案例介绍 本案例通过java代码实现jvm规范中指令集和解释器,完成后就可以开始执行1到100的加和计算。

    2019/05/06

  9. 用Java实现JVM第四章《运行时数据区》

    2019/05/05

  10. 用Java实现JVM第三章《解析class文件》附[classReader拆解]

    案例介绍 按照如下虚拟机规范,本文主要介绍java版本jvm提取class字节码方式。在java中没有无符号类型,例如js中byte取值是0~256、java中是-128 ~ +127,所以在实际处理字节码时[虚拟机规范u1、u2、u4],需要进行转换。

    2019/05/04

  11. 用Java实现JVM第三章《解析class文件》

    案例介绍 本案例主要介绍通过java代码从class文件中解析;class文件、常量池、属性表; 作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类。为了使java程序可以“编写一次,处处运行”,Java虚拟机规范对class文件格式进行了严格的规定。但是另外一方面,对于从哪里加载class文件,给了足够多的自由。Java虚拟机实现可以从文件系统读取和从JAR(或ZIP)压缩包中提取clss文件。除此之外,也可以通过网络下载、从数据库加载,甚至是在运行中直接生成class文件。Java虚拟机规范中所指的class文件,并非特指位于磁盘中的.class文件,而是泛指任何格式符号规范的class数据。

    2019/05/03

  12. 用Java实现JVM第二章《搜索class文件》

    案例简述 本章节主要了解Java虚拟机从哪里寻找class文件并且读取class内字节码

    2019/05/02

(转载本站文章请注明作者和出处 微信公众号:bugstack虫洞栈 | 作者:小傅哥

代理反射、扰动函数、字节码插桩、类代理注册,把技术与场景结合学习中间件开发技术!

通过22个一线互联网实际业务开发场景,重构实践方式学习设计模式的技术运用。让设计模式可以让每个学习的人都能接受理解,并运用到自己的项目上。

拿大厂Offer,通过对Java技术的精讲,透彻的原理分析,深度的源码学习,再加实践验证,让懂了就是真的懂!

通过三个字节码框架;ASM、Javassit、Byte-buddy,的插装学习,并结合Javaagent了解非入侵的全链路监控服务,以及做反射、中间件和混淆代码等

跟着案例学Netty,Netty4.x案例从简单入门到应用实战,全篇35节优秀案例+实战源码[基础篇(13)、中级篇(13)、高级篇(3章+)、源码分析篇]。

本专题通过Java代码来实现JVM的基础功能(搜索解析class文件、字节码命令、运行时数据区等),从而让java程序员通过最熟知的java程序,学习JVM是如何将java程序一步步跑起来的。


本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、点赞、分享)!

4437 1006

本专栏共计22个真实业务场景对应59组案例工程,包括交易、营销、秒杀、中间件、源码等各类实战场景。

3341 967

专注于原创开发专题案例。跟着案例学Netty,Netty4.x案例从简单入门到应用实战,全篇37章节优秀案例+实战源码[基础篇(13)、中级篇(13)、高级篇(3章+)、源码分析篇],以上章节全部完成并不断持续更新中。

241 143

本专栏是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信实现通信核心功能。

13850 320