
JVM
安心撸码
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
双亲委派模型
双亲委派模型是Java类加载器所使用的模型.双亲委派模型的工作过程:如果一个类加载器收到了类加载器的请求.它首先不会自己去尝试加载这个类.而是把这个请求委派给父加载器去完成.每个层次的类加载器都是如此.因此所有的加载请求最终都会传送到Bootstrap类加载器(启动类加载器)中.只有父类加载反馈自己无法加载这个请求(它的搜索范围中没有找到所需的类)时.子加载器才会尝试自己去加载....原创 2019-07-15 09:57:36 · 180 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof
A、jps(Java Virtual Machine Process Status Tool) jps主要用来输出JVM中运行的进程状态信息。语法格式如下:jps [options] [hostid]如果不指定hostid就默认为当前主机或服务器。命令行参数选项说明如下:-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l ...原创 2019-07-16 17:11:24 · 381 阅读 · 0 评论 -
JVM的4种垃圾回收算法、垃圾回收机制与总结
垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场合:存活对象较多的情况下比较高效 适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况...转载 2019-07-22 08:37:40 · 147 阅读 · 0 评论 -
JAVA内存模型
一 Java内存模型1模型Java内存逻辑模型如下:所有变量都存储在主内存中。每个线程都有自己的工作内存,工作内存中保存了线程使用到的主内存中变量的副本。线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,不能直接操作主内存。不同线程之间无法访问对方的工作内存。线程之间的值传递均需通过主内存来完成。2协议 操...转载 2019-07-30 14:10:23 · 148 阅读 · 0 评论 -
JAVA类加载机制
一、类加载类加载分为三个步骤:加载、连接、初始化。1.加载类加载指的是将class文件读入内存,并为之创建一个java.lang.Class对象,即程序中使用任何类时,系统都会为之建立一个java.lang.Class对象,系统中所有的类都是java.lang.Class的实例。类的加载由类加载器完成,JVM提供的类加载器叫做系统类加载器,此外还可以通过继承ClassLoader基类...原创 2019-08-01 19:30:40 · 208 阅读 · 0 评论 -
深入理解JVM
Java程序通过编译生成class文件,生成的class文件通过JVM(Java VirtualMachine)来运行,JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。程序计数器(Program Counter Register) 学过《计算机组成原理》的人对于这个名词都不...原创 2019-08-01 21:18:52 · 201 阅读 · 0 评论 -
JVM常用内存参数配置
一、常用参数-XmsJVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation=来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同值,避免每次垃圾回收完成后JVM重新分配内存;开发测试机JVM可以保留默认值。(例如:-...原创 2019-08-01 21:42:56 · 170 阅读 · 0 评论