随笔分类 -  JVM

摘要:动态代理 核心方法为 Proxy.newProxyInstance 方法,该方法需要传入 被代理类的类加载器、被代理类实现的接口 以及一个 InvocationHandler 的实现类实例。 方法会通过字节码技术为我们返回一个代理对象,代理对象会实现被代理对象的所有接口,并在这些接口声明方法前后织入 阅读全文
posted @ 2020-03-20 15:21 牛有肉 阅读(831) 评论(2) 推荐(1) 编辑
摘要:了解字节码文件可以让我们从更底层的视角理解 JAVA 的内部运作机制。程序说白了就是一堆逻辑和数据,字节码文件中便存储着可以支撑 JAVA 语言逻辑的数据。 .java 文件经过 javac 编译后会生成一份 .class 字节码文件。.class 文件是 java 跨平台的基础,JVM 对各种操作 阅读全文
posted @ 2020-03-20 09:32 牛有肉 阅读(755) 评论(0) 推荐(0) 编辑
摘要:happen-before 可真是一个经典又老生常谈的话题,规则一共就八条,但看起来总有种抓不住重点的感觉。今天再整理一下对这八条规则的理解。 首先我的理解是 happen-before 的语义与在什么什么之前发生完全没有关系,其语义是如果 A hapen-bfore B,那么 A 的结果对 B 是 阅读全文
posted @ 2020-03-02 21:45 牛有肉 阅读(7149) 评论(2) 推荐(2) 编辑
摘要:CPU 在运行时为了响应外部的请求,对外提供了一个中断引脚。CPU 在每个指令周期的最后一个晶振周期检查中断引脚,如果有中断任务,则立即停止手中的工作(当然要先保存现场)调用相应中断号的中断处理程序对中断做出响应。 进程在运行时为了响应外部请求,对外提供了信号队列。在每次由核心态转为用户态(比如由进 阅读全文
posted @ 2020-03-01 23:18 牛有肉 阅读(1037) 评论(0) 推荐(0) 编辑
摘要:最近想整理一下GC相关的知识和经验,在整理之前先整理一下jvm的内存结构,后续会持续更新。 jvm内存结构重要由两部分组成:线程共享区域与线程私有区域,如下图所示: 其中方法区和堆为线程共享区域,栈与程序计数器为线程私有区域。与操作系统定义的堆栈类似,栈用来存储方法调用时产生的临时变量以及寄存器值, 阅读全文
posted @ 2019-12-03 18:13 牛有肉 阅读(454) 评论(0) 推荐(1) 编辑