![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
虚拟机
万zp
加油
展开
-
jvm 06 补充 OOM 和具体工具使用
01。原创 2024-07-10 19:37:33 · 184 阅读 · 0 评论 -
jvm 07 GC算法,内存池
01。原创 2024-07-10 19:35:57 · 334 阅读 · 0 评论 -
jvm 06 对象内存结构,指针压缩,调优
规则:所有对象大小都必须能被8整除 8字节对齐。类型指针 klass pointer。开启指针压缩 4B。关闭指针压缩 8B。开启指针压缩 4B。关闭指针压缩 8B。原创 2024-07-09 15:48:10 · 278 阅读 · 0 评论 -
手写JVM 01
01。原创 2024-07-08 23:08:16 · 158 阅读 · 0 评论 -
jvm 05JVM - 对象的创建 ,对象内存分配 ,oop模型,字符串常量池
01。原创 2024-07-04 16:37:45 · 434 阅读 · 0 评论 -
jvm 04 字符串,数组在jvm中的使用情况,字符串常量池的详细介绍
01。原创 2024-07-04 12:46:08 · 78 阅读 · 0 评论 -
jvm 03 JVM的运行时数据区域 ,(类常量池,运行时常量池,字符串常量池这个三个的区别),操作系统内存模型JMM和JVM的内存模型联系
方法区在jdk8后,改成元空间。原创 2024-07-04 12:24:16 · 238 阅读 · 0 评论 -
jvm 02 klass模型, 类加载的过程,类加载器的种类,类加载器的具体代码,双亲委派,类加载后存储的地方
01。原创 2024-07-03 16:04:57 · 281 阅读 · 0 评论 -
jvm 01 适用JVM的class文件结构,class文件中的常量池,方法表
01.JVM是什么。原创 2024-04-30 18:46:17 · 413 阅读 · 0 评论 -
JVM(Java虚拟机) 07.类加载
class文件存放在磁盘上,需要的时候,JVM会将他们加载到内存上,进行验证,转换解析,初始化最终形成Java类型可以直接被JVM使用。Java的类的加载,连接,初始化是在程序运行过程中进行的,并没有预处理,这虽然让内存会耗费一些资源,但是可以说上是遇水架桥,逢山开路,更加灵活。class类加载到内存上,一直到从内存上卸载掉,一共七个步骤。01.加载 02.验证 03.准备...原创 2020-03-14 09:03:36 · 83 阅读 · 0 评论 -
Java虚拟机(JVM) 07.类文件结构(.class文件结构)
在编写好了程序之后,就会出现一个.java结尾的文件,这个是源文件。而后Java编译器(Javac)编译这个源文件后,生成一个.class文件。这个是类文件。Java的口号是“一次编写,到处运行”,这个是通过JVM来完成的。JVM与.java文件关系不大,与.class文件有着密切的关系。这个class是八位字节为单位的二进制流,中间没有分隔符,内容按照位置放好,就好像计算机网络中的帧一样每个...原创 2020-02-04 19:48:20 · 90 阅读 · 0 评论 -
Java虚拟机(JVM) 06.Java中自带的检测内存状态的DOS命令和可视化检测内存工具
怎么看运行程序的情况。1.在DOS界面输入命令查看java内存中的情况 2.可视化工具,查看java中的内存情况DOS中的命令:01.jinfo:02.jstat:03.jmap:可视化工具:jconsole:...原创 2020-01-21 14:18:56 · 221 阅读 · 0 评论 -
Java虚拟机(JVM)04 When and How to do 垃圾回收 算法
用标记计数法和可达性探测法对堆中的对象进行标记后,怎么去回收垃圾对象以及何时去回收呢?这用到了几种算法:标记–清除法:就是将之前标记完成的对象进行简单的删除操作,这样会产生不整齐的内存。标记–复制法:先将Java堆的内存区域分成两个部分,其中一个用来存放Java对象,另一个是空的。当进行垃圾回收的时候,在有存放的地方先将标记的对象清除,没有清除的对象进行复制,转移到另一半空内存中。垃圾回收工...原创 2020-01-16 21:35:32 · 111 阅读 · 0 评论 -
Java虚拟机(JVM) 03 java对象的回收 which object is the garbage?算法
Java对象信息是存储在Java堆中的,如果不进行对堆中不需要的对象内存进行回收,就是发生堆内存溢出OutOfMemory错误,影响程序运行。所以需要对Java堆中的对象进行识别,什么对象是Garbage。which object is the garbage?这里需要提到Java中的引用,英文是reference。引用(Reference)数据中存储内存地址,程序用到引用的时候,根据其中的数...原创 2020-01-16 12:29:17 · 105 阅读 · 1 评论 -
java虚拟机(JVM)02 创建对象实例过程
java中使用new 创建一个类的对象实例:1.首先在方法区中的类信息中查找是否有这个类的信息。** 2.如果有继续运行,在java堆中找出相应的一块空闲内存。**这里如果java堆的内存结构是整齐的(上部是已经占用的内存,下部是空闲的内存),用一个指针隔开两种内存。这时只需要把指针向下移动相应的大小即可。 如果java堆的内存不是整齐的,(像是链表)这个时候使用一张java堆内存的空闲表来...原创 2020-01-14 19:09:42 · 106 阅读 · 1 评论 -
java虚拟机(JVM)01 JVM内存模型
java的内存的模型:图片如果侵权,联系我,删除java的内存分成几个部分:程序计数区,java虚拟栈,本地方法栈,方法区,堆,其中java虚拟栈和堆是大家经常提起的。程序计数区:功能是告诉CPU这个线程下一个需执行的指令的偏移地址。因为java是多线程工作的,所以切换线程的时候需要保留当前线程运行的信息,所以使用程序计算器来实现。java虚拟栈:每次方法的调用,都会创建一个叫做栈帧的事物...原创 2020-01-13 19:00:32 · 81 阅读 · 1 评论 -
Java虚拟机 (JVM)05 Java的各种实施垃圾回收器
01.serial 单线程工作,使用的标记清除算法,垃圾回收线程工作的时候,需要暂停全部的工作线程,单独运行serial来清洗工作线程。工作的主要区域是在新生代。02.pernew 多线程工作,这里说的是可以多个pernew线程同一时间段工作。但是和工作线程还是先要暂停。03.CMS 多标记工作,一.预先标记,找出GC Roots上的对象(直接关联对象) 二.根据GC Roots上找到的对...原创 2020-01-17 09:21:48 · 105 阅读 · 0 评论