JVM
文章平均质量分 94
墨枢Mosul
天地辽阔,我要独占一方;世间千言,我亦自成一家。如此,也不负儿时轻狂!
展开
-
JVM篇(05.垃圾回收)
关于JVM垃圾回收,我们知道有各种垃圾回收算法和各种垃圾回收器。本文将对这些知识进行介绍。1.垃圾回收什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占用的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。1.1 内存溢出1.2 内存泄漏2.垃圾回收算法3.垃圾回收器 我们先看下classFile的.原创 2021-03-25 01:44:17 · 486 阅读 · 1 评论 -
JVM篇(04.JVM内存结构[运行时数据区])
我们最熟悉的JVM内存结构就是堆(heap)和栈(stack),除了堆和栈,还有什么?这就是我们今天要讨论的内容。1.JVM内存结构图 我们先看下JVM结构图 JDK1.8中的内存结构 从上图可以发现:JVM运行时数据区(Runningtime Data Area)有如下几个组成部分:程序计数器(Program Counter Regist.原创 2021-01-13 00:53:21 · 526 阅读 · 0 评论 -
JVM篇(03.阅读class字节码)
class文件是JVM的输入,是JVM实现平台无关、技术无关的基础。java虚拟机规范中定义了class文件的结构。class文件格式概述 我们先看下classFile的结构(查阅java 虚拟机规范)ClassFile{ u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info co.原创 2020-11-10 09:38:00 · 192 阅读 · 0 评论 -
JVM篇(02.JAVA ASM简介)
我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。 可能我们在开发中几乎对ASM没有印象,我记得当时学习cglib反向代理的时候,就需要映入asm.jarASM概述ASM是一个Java字节码操纵框架,它可以动态生成类或者增强既有类的功能ASM可以直接产生二进制class文件.原创 2020-11-10 09:09:51 · 813 阅读 · 0 评论 -
JVM篇(01.JAVA体系与JVM)
JVM篇(01.JAVA体系与JVM) 关于JVM,可能我们最大的印象就是JDK、JRE和JVM三者的关系。然后就是有些程序可能需要比较大的堆内存,需要在启动配置上配置:-Xms -Xmx等。我记得我第一份工作是做银行系统的,当时系统比较老,没有用到redis缓存,然后程序启动的时候就会创建比较多的监听对象和缓存对象,当时我们就需要配置-Xms -Xmx这两个参数,否则程序会出现OOM。那么我们就从JDK、JRE及JVM三者的关系开始,深入的了解下JVM。原创 2020-11-09 12:32:53 · 275 阅读 · 1 评论