
JVM
文章平均质量分 82
JVM
刺豚灬
小小java架构师
展开
-
7 JVM调优实战
输入 jad加类的全名 可以反编译,这样可以方便我们查看线上代码是否是正确的版本。使用 ognl 命令可以查看线上系统变量的值,甚至可以修改变量的值。输入 thread加上线程ID 可以查看线程堆栈。输入 thread -b 可以查看线程死锁。输入thread可以查看线程详细情况。选择进程序号1,进入进程信息操作。原创 2023-10-02 19:42:12 · 81 阅读 · 0 评论 -
6 JVM调优工具
jps 查看java进程。原创 2023-09-30 20:04:30 · 74 阅读 · 0 评论 -
5 垃圾收集器G1&ZGC
年轻代中的Eden和Survivor对应的region也跟之前一样,默认8:1:1,假设年轻代现在有1000个region,eden区对应800个,s0对应100个,s1对应100个。G1将Java堆划分为多个大小相等的独立区域(Region),JVM最多可以有2048个Region(大小为堆大小除以2048)初始标记STW:暂停所有的其他线程,并记录下gc roots直接能引用的对象,速度很快。大对象的处理,Humongous区。最终标记STW:同CMS的重新标记。并发标记:同CMS的并发标记。原创 2023-09-28 20:41:14 · 81 阅读 · 0 评论 -
4 垃圾收集器
串行收集器(单线程),不仅指一个垃圾收集线程回收垃圾,在其回收垃圾时也需要新生代采用复制算法,老年代采用标记-整理算法Serial Old收集器是Serial收集器的老年代版本,另一种用途是作为CMS收集器的后备方案。原创 2023-09-26 21:53:15 · 63 阅读 · 0 评论 -
3 JVM对象创建与内存分配机制
KlassPointer指针:保存方法区(类元信息的引用)Java Class类对象:存在堆中;给Java开发人员获取类信息的对象。原创 2023-09-24 12:01:25 · 60 阅读 · 0 评论 -
2 JVM内存模型深度剖析与优化
方法区:类信息、常量池(运行时常量池、字符串常量池、八大类型对象池)、静态变量。动态链接:对象.run();//run在存的时候仅是一个。方法出口:后续程序知道会回到对象.run();ClassLoader类装载:装载class文件到JVM。Runtime data area运行时数据区:jvm。局部变量表:int a;本地方法栈:为虚拟机调用Native服务。操作数栈:执行a+b等。执行引擎:执行classes中的指令。)用来记录下一步需要执行的指令。)几乎所有对象的实例都在此分配。原创 2023-09-22 22:02:49 · 90 阅读 · 0 评论 -
1 从JDK源码级别剖析JVM类加载机制
java类加载属于懒加载,用到才加载执行结果:步骤:1 执行main方法,需要加载TestDynamicLoad类(执行静态代码块)2 new A()时,加载A类,先执行类中的静态代码块 -> 构造方法3 B没使用,不会加载。原创 2023-09-20 21:35:56 · 72 阅读 · 0 评论