JVM
文章平均质量分 71
Mr-X~
持续学习,不断进步!
展开
-
JVM监控及诊断工具-GUI篇
从Java5开始,在JDK中自带的Java监控和管理控制台。用于对JVM中内存、线程和类等的监控,是一个基于JMX(Java management extensions)的GUI性能监控工具。官方教程:https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html。原创 2023-10-09 17:37:54 · 500 阅读 · 0 评论 -
JVM命令行监控工具
jvm原创 2023-10-08 17:45:22 · 293 阅读 · 0 评论 -
性能优化三部曲
jvm原创 2023-10-08 15:34:44 · 50 阅读 · 0 评论 -
生产环境中遇到的问题?为什么调优及监控的依据?
jvm原创 2023-10-08 15:32:44 · 50 阅读 · 0 评论 -
字节码文件的跨平台性
JVM原创 2023-10-08 14:23:27 · 32 阅读 · 0 评论 -
Java中几种不同的引用
jvm原创 2023-10-08 13:39:04 · 94 阅读 · 0 评论 -
JVM222
本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载器加载完成后的阶段,如下图:当我们通过前面的:类的加载->验证->准备->解析->初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会用到我们运行时数据区,如下图:内存是非常重要的系统资源,是硬盘和CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效文档运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。原创 2023-10-07 17:25:25 · 397 阅读 · 0 评论 -
JVM111
jvm原创 2023-09-27 15:28:40 · 626 阅读 · 0 评论 -
如何看待Java上层技术与JVM
JVM原创 2023-09-27 10:37:36 · 484 阅读 · 0 评论 -
JVM中的GC垃圾回收
文章目录JVM中的GC垃圾回收什么是GC,为什么需要GC早期的垃圾回收行为Java自动内存管理介绍垃圾回收的相关算法标记阶段:引用计数算法引用计数算法的原理引用计数算法的优缺点标记阶段:可达性分析算法GC Roots清除阶段:标记-清除算法清除阶段:复制算法清除阶段:标记-压缩(或标记-整理,Mark-Compact)算法JVM中的GC垃圾回收什么是GC,为什么需要GC什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。为什么需要GC?如果不及时的对垃圾进行清理原创 2021-05-19 15:47:54 · 1572 阅读 · 9 评论 -
JVM中的方法区
文章目录JVM中的方法区运行时数据区结构图栈堆方法区的交互关系方法区在哪里?方法区的基本理解Hotspot中方法区的演进设置方法区大小与OOMjdk7及以前:jdk8及以后:方法区的内部结构.class字节码文件中常量池方法区中的运行时常量池方法区在jdk6,jdk7,jdk8中的演进细节永久代为什么要被元空间替换?StringTable字符串常量池为什么要从永久代调整到堆中?静态变量存在哪?方法区的垃圾收集JVM中的方法区运行时数据区结构图运行时数据区结构图,如下图:从线程共享与否的角度来看,如原创 2021-05-16 18:39:14 · 2393 阅读 · 0 评论 -
一篇文章帮你搞定JVM中的堆
文章目录一篇文章帮你搞定JVM中的堆堆的核心概述堆的内存细分设置堆内存大小与OOMOOM(OutOfMemory)举例年轻代与老年代图解对象分配过程MinorGC,MajorGC,FullGC堆空间分代思想内存分配策略为对象分配内存:TLAB(Thread Local Allocation Buffer)堆是分配对象的唯一选择吗逃逸分析概述对象如果没有逃逸---代码优化之栈上分配对象如果没有逃逸---代码优化之同步省略对象如果没有逃逸---代码优化之标量替换一篇文章帮你搞定JVM中的堆堆的核心概述1.原创 2021-05-15 12:19:52 · 542 阅读 · 2 评论 -
一篇文章帮你搞定JVM中的虚拟机栈
文章目录一篇文章帮你搞定JVM中的虚拟机栈虚拟机栈的概述虚拟机栈的常见异常与如何设置栈大小栈中可能会出现的异常设置栈内存大小栈的存储结构和运行原理栈中存储什么?栈运行原理栈帧的内部结构栈帧存储内容局部变量表(Local Variables)方法对应的字节码的内部结构的剖析关于Slot的理解操作数栈(Operand Stack)操作数栈的特点涉及操作数栈的字节码指令执行分析---代码追踪动态链接(或指向运行时常量池的方法引用)的理解与常量池的作用方法返回地址(Return Address)栈的相关面试题一篇原创 2021-05-12 21:55:52 · 709 阅读 · 18 评论 -
深入理解JVM的PC寄存器(Program Counter Register)
文章目录深入理解JVM的PC寄存器(Program Counter Register)PC寄存器概念用一个程序演示PC寄存器两个常见问题深入理解JVM的PC寄存器(Program Counter Register)PC寄存器概念作用:PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。PC寄存器的流程图,如下图:1.它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域。2.在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周原创 2021-05-10 18:21:31 · 1418 阅读 · 4 评论 -
通过IDEA设置堆内存空间
文章目录通过IDEA设置堆内存空间编写两个可以导致线程阻塞的类并配置堆内存参数启动类在jvisualvm.exe中查看堆内存分配情况通过IDEA设置堆内存空间编写两个可以导致线程阻塞的类并配置堆内存参数首先需要注意的点:必须要是线程阻塞的类,在jvisualvm.exe程序里面才能够加载这个类的具体信息,jvisualvm.exe后面会提到。编写两个类,类的main方法,代表两个线程,类具体代码如下图:HeapDemo.java类的代码如下图:HeapDemo3.java类的代码如下图:然原创 2021-05-10 12:34:49 · 14242 阅读 · 7 评论 -
JVM中的本地接口Native Interface和本地方法栈Native Method Stack
文章目录JVM中的本地接口Native Interface和本地方法栈Native Method Stack本地接口和本地方法栈在JVM中的位置本地接口本地方法栈Native Method Stack本地方法库JVM中的本地接口Native Interface和本地方法栈Native Method Stack本地接口和本地方法栈在JVM中的位置首先来看一下本地接口Native Interface,本地方法栈Native Method Stack,和本地方法库在JVM中的位置,如下图:本地接口本地原创 2021-05-09 09:30:54 · 565 阅读 · 4 评论 -
深入理解JVM中的ClassLoader类加载器
文章目录深入理解JVM中的ClassLoader类加载器JVM的体系结构图JVM的位置JVM结构图中的class files文件JVM结构图中的类加载器ClassLoader的解释类加载器ClassLoader的作用类加载器的种类java类的加载机制双亲委派机制沙箱安全机制深入理解JVM中的ClassLoader类加载器JVM的体系结构图先来看一下JVM的体系结构,如下图:JVM的位置JVM的位置,如下图:JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以调用底层的硬件,用JIN(原创 2021-05-08 19:12:18 · 2245 阅读 · 9 评论 -
在cmd命令行窗口怎样把.java文件编译成.class文件?java文件和class文件内部代码长什么样?.class文件如果想要被JVM加载,要求是什么?
在cmd命令行窗口怎样把.java文件编译成.class文件?java文件和class文件内部代码长什么样?.class文件如果想要被JVM加载,要求是什么?编译.java文件首先创建一个hello.java文件,此文件的内部内容,如下图:hello.java文件的存放路径是在D:/新建文件夹 这个路径下,如下图:接着在cmd命令行窗口,进入jdk的bin目录中,去编译此.java文件,编译命令如下图:编译成功之后,会自动在.java文件的目录中生成一个.class文件,如下图:编译好原创 2021-05-08 17:54:37 · 3763 阅读 · 1 评论