JVM
文章平均质量分 62
JVM
小海海不怕困难
可以,但是得加钱
展开
-
线程池原理
线程池,按照配置参数(核心线程数、最大线程数等)创建并管理若干线程对象,没有任务的时候,这些线程都处于等待空闲状态。如果有新的线程任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,线程池会创建一个新线程进行处理或者放入队列(工作队列)中等待。原创 2023-08-19 22:04:29 · 12520 阅读 · 0 评论 -
Java编译器中的优化技术
Java中的热点代码主要有两类,包括:1、被多次调用的方法。2、被多次执行的循环体。前者很好理解,一个方法被调用得多了,方法体内代码执行的次数自然就多,它成为热点代码是理所当然的。而后者则是为了解决当一个方法只被调用过一次或少量的几次,但是方法体内部存在循环次数较多的循环体,这样循环体的代码也被重复执行多次,因此这些代码也应该认为是“热点代码”。对于这两种情况,编译的目标对象都是整个方法体,而不会是单独的循环体。原创 2023-07-26 22:31:26 · 11942 阅读 · 0 评论 -
深入理解try...catch(字节码层面)
我们工作中常用try...catch来解决程序中出现的异常情况,但是你真的了解它的实现原理吗?今天我就带着大家从字节码层面理解try...catch。原创 2023-04-28 23:28:13 · 12410 阅读 · 0 评论 -
使用ScheduledFuture导致OOM
我们公司有一个项目,它会在一个比较固定的时间oom。后来根据输出的堆日志定位到了问题所在。问题存在于一个定时任务接口,该接口的业务流程是先查询令牌桶中有没有令牌,如果有令牌就执行业务逻辑,如果没有令牌就自旋5次,要是还没拿到令牌就打印日志。我排查一下发现令牌桶中的ScheduledFuture线程不会自动停止,它会不断添加令牌除非系统停止。下面是我对这次事故的分析。原创 2023-04-26 11:04:06 · 11697 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(GC一)
Java面试题系列——JavaSE面试题(GC一)原创 2022-06-07 15:19:47 · 11931 阅读 · 0 评论 -
什么是 STOP THE WORLD
什么是 STOP THE WORLD原创 2022-06-07 19:49:07 · 11856 阅读 · 0 评论 -
oom后内存居高不下
oom后内存居高不下原创 2023-02-26 10:56:20 · 11385 阅读 · 0 评论 -
jvisualvm远程监控Java程序
jvisualvm远程监控Java程序原创 2023-02-26 11:40:46 · 12487 阅读 · 0 评论 -
JAVA内存泄漏时自动输出快照
JAVA内存泄漏时自动输出快照原创 2023-02-26 10:37:19 · 12374 阅读 · 0 评论 -
有序性保障:X86 CPU内存屏障和JSR内存屏障
sfence:在sfence指令前的写操作当必须在sfence指令后的写操作前完成lfence: 在Ifence指令前的读操作当必须在Ifence指令后的读操作前完成mfence: 在mfence指令前的读写操作当必须在mfence指令后的读写操作前完成。Load2,在Load2及后续读取操作要读取的数据被访问前,保证Loadi要读取的数据被读取完毕。StoreLoad屏障:对于这样的语句Store1;Store2,在store2及后续写入操作被刷出前,保证Loadi要读取的数据被读取完毕。原创 2023-03-10 15:54:42 · 11541 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(JVM一)
Java面试题系列——JavaSE面试题(JVM一)原创 2022-06-07 08:26:36 · 11385 阅读 · 0 评论 -
Java面试题系列——JavaSE面试题(JVM二)
Java面试题系列——JavaSE面试题(JVM二)原创 2022-06-07 09:18:19 · 12023 阅读 · 0 评论 -
打破双亲委派机制进行类加载
打破双亲委派机制进行类加载原创 2023-03-03 14:18:17 · 11666 阅读 · 0 评论 -
jstatd的启动方式与关闭方式
jstatd的启动方式与关闭方式原创 2023-02-26 12:03:48 · 12234 阅读 · 0 评论 -
Java中class文件的格式
Java中class文件的格式原创 2023-03-06 21:46:34 · 11997 阅读 · 0 评论 -
浅析Java栈帧
Java虚拟机以方法作为最基本的执行单元,栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机 运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接、 返回地址等信息。每一个方法从调用开始至执行完成过程,都对应着一个栈帧在虚拟机栈里 面从入栈到出栈的过程。每一个线程对应了JVM中一个栈帧。原创 2023-03-10 16:58:03 · 11842 阅读 · 0 评论 -
JMC的使用
JMC的使用原创 2023-02-26 22:19:52 · 12116 阅读 · 0 评论 -
使用JavaAgent获取Object的大小
使用JavaAgent获取Object的大小原创 2023-03-06 10:11:37 · 11645 阅读 · 0 评论 -
指令重排与半初始化状态
指令重排与半初始化状态原创 2023-03-07 22:07:24 · 11472 阅读 · 0 评论