笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

随笔分类 -  JVM

摘要:一、线程的实现: 实现线程主要有三种方式:使用内核线程实现(1:1实现),使用用户线程实现(1:N实现), 使用用户线程加轻量级进程混合实现(N:M实现)。 1、内核线程实现: 使用内核线程实现的方式也被称为1:1实现。内核线程(Kernel-Level Thread,KLT)就是直接由操作系统内核 阅读全文

posted @ 2025-06-28 11:48 草妖 阅读(12) 评论(0) 推荐(0)

摘要:主要目的: 定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不 阅读全文

posted @ 2025-06-21 14:22 草妖 阅读(3) 评论(0) 推荐(0)

摘要:客户端编译器: 对于客户端编译器来说,它是一个相对简单快速的三段式编译器,主要的关注点在于局部性的优化,而放弃了许多耗时较长的全局优化手段。 在第一个阶段,一个平台独立的前端将字节码构造成一种高级中间代码表示(High-Level Intermediate Representation,HIR,即与 阅读全文

posted @ 2025-06-19 16:34 草妖 阅读(5) 评论(0) 推荐(0)

摘要:从Javac代码的总体结构来看,编译过程大致可以分为1个准备过程和3个处理过程,它们分别如下 所示。 1)准备过程:初始化插入式注解处理器。 2)解析与填充符号表过程,包括: 词法、语法分析。将源代码的字符流转变为标记集合,构造出抽象语法树。 填充符号表。产生符号地址和符号信息。 3)插入式注解处理 阅读全文

posted @ 2025-06-18 16:43 草妖 阅读(3) 评论(0) 推荐(0)

摘要:JVM高级特性与最佳实践(第3版)--虚拟机类加载机制 - 闪电龟龟 - 博客园 局部变量表(Local Variables Table)是一组变量值的存储空间,用于存放方法参数和方法内部定义 的局部变量。在Java程序被编译为Class文件时,就在方法的Code属性的max_locals数据项中确 阅读全文

posted @ 2025-06-17 10:22 草妖 阅读(4) 评论(0) 推荐(0)

摘要:定义: Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 生命周期: 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证( 阅读全文

posted @ 2025-06-13 14:47 草妖 阅读(4) 评论(0) 推荐(0)

摘要:目前,发现内存溢出在实际应用中常见的有这么两种情况: 一、代码中存在while等循环,导致内存溢出。 二、在后台代码中,部分接口报出内存溢出,但是部分接口正常。 第一种情况解决方案: 第一种情况可以查看代码中的报错日志,一般可以解决,如果实在没有报错,可以按照下面步骤进行排查: 步骤一:通过task 阅读全文

posted @ 2025-06-09 11:05 草妖 阅读(10) 评论(0) 推荐(0)

摘要:-XX:InitialHeapSize:堆内存初始值(内存单位:默认(byte)、K(kb)、M(mb)、G(gb),后续内存单位不再累述);-XX:MaxHeapSize:堆内存最大值;-XX:+PrintCommandLineFlags :打印虚拟机的显示和隐藏参数;参照:https://zhu 阅读全文

posted @ 2025-04-19 14:45 草妖 阅读(12) 评论(0) 推荐(0)

摘要:并发的可达性分析 当前主流的商用程序语言(Java、C#,上溯至前面提到的古老的Lisp)的内存管理子系统,都是通过可达性分析(Reachability Analysis)算法来判定对象是否存活的。这个算法的基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引 阅读全文

posted @ 2025-03-25 15:29 草妖 阅读(4) 评论(0) 推荐(0)

摘要:Tomcat配置 在(window系统)tomcat目录中:./Tomcat/apache-tomcat-8.5.81/bin/catalina.bat添加如下代码: rem setlocal SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.co 阅读全文

posted @ 2025-03-04 10:14 草妖 阅读(5) 评论(0) 推荐(0)

摘要:Java虚拟机运行时数据区 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需 阅读全文

posted @ 2025-01-06 10:04 草妖 阅读(3) 评论(0) 推荐(0)

摘要:一、参照地址:https://blog.csdn.net/HO1_K/article/details/127883411 JVM监控及诊断工具-命令行篇 - 知乎 (zhihu.com) jvm内存泄漏排查-CSDN博客 垃圾回收:JVM的垃圾回收机制——垃圾回收算法 - 知乎 (zhihu.com 阅读全文

posted @ 2024-03-30 16:41 草妖 阅读(9) 评论(0) 推荐(0)