
JVM
微笑看你哭
这个作者很懒,什么都没留下…
展开
-
JVM性能监控与调优学习
JVM命令参数 标准参数 在jvm的各个版本中不会变的参数,例如:-help、-server -client、-version -showversion、-cp -classpath。 X参数 非标准化参数,jvm的不同版本可能改动:-Xint(解释执行)、-Xcomp(第一次使用就编译成本地代码)、-Xmixed(混合模式,JVM自己来决定是否编译成本地代码)。 XX参数 非标准化参数,jvm...原创 2019-12-21 17:07:02 · 267 阅读 · 0 评论 -
JVM学习(一)——JVM基本结构
运行流程 我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图: java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行。这样我们是不是可以推演,如果要在mac系统上运行,是不是只需要安装mac java虚拟机就行了。那么了解了这个基本原理后...转载 2019-01-24 12:12:08 · 244 阅读 · 0 评论 -
JVM学习(三)——ClassLoader
ClassLoader 做什么的? 顾名思义,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。字节码可以来自于磁盘文件 *.class,也可以是 jar 包里的 *.class,也可以来自远程服务器提供的字节流,字节码的本质就是一个字节数组 []byte,它有特定的复杂的内部格式。 有很多字节码加密技术就是依靠定制 ClassLoader 来实...转载 2019-02-01 11:06:49 · 279 阅读 · 0 评论 -
JVM的垃圾回收算法
标记清除 标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。 在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。 根节点(GC Roots):为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量)中。例如:1、虚拟机栈(栈帧中的本地变量表)...原创 2019-03-06 00:23:07 · 127 阅读 · 0 评论 -
JVM-类加载机制
JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这 五个过程。 加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对 象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既 可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),...原创 2019-03-06 22:34:26 · 135 阅读 · 0 评论