07 2018 档案

摘要:一、概念 类加载:虚拟机把类的数据从Class文件加载到内存中,并对数据进行校验,转化解析,和初始化,最终形成可以被虚拟机直接使用的Java类型。 二、加载时机 1.加载 加载阶段虚拟机完成的工作为: 1)通过类全限定名来获取定义此类的二进制流。 2)将字节流代表的静态存储结构转化为方法区运行时的数 阅读全文
posted @ 2018-07-20 11:23 三生石1314 阅读(217) 评论(0) 推荐(0)
摘要:1. -Xms20M JVM启动时候的内存大小为20M 2. -Xmx20M JVM内存最大值是20M 将其与Xms大小一致可以避免JVM内存自动扩展 3. -Xss128K 表示可以设置虚拟机栈大小为128K 4. -Xoss128K 表示设置本地方法栈的大小为128K(HotSpot不区分虚拟机 阅读全文
posted @ 2018-07-12 09:36 三生石1314 阅读(1143) 评论(0) 推荐(0)
摘要:一、Minor GC、Major GC 和 Full GC Minor GC:清理新生代空间,当Eden空间不能分配时候引发Minor GC Major GC:清理老年代空间 Full GC:清理Java堆空间 二、新生代垃圾收集器 线程:单线程收集器, 算法:新生代标记复制,老年代标记整理 缺点: 阅读全文
posted @ 2018-07-12 09:14 三生石1314 阅读(260) 评论(0) 推荐(0)
摘要:算法主要分为两个步骤 1. 标记: 遍历所有的 GC Roots, 然后标记所有可达对象为存活对象 2. 清除: 遍历堆中所有对象,然后将没有标记的对象清除。 存在不足: 1. 效率低下。 2. 产生大量的磁盘空间 原理:将磁盘分为一半一半,每次都是用50%内存,在内存用完了, 将这50%内存中存活 阅读全文
posted @ 2018-07-11 10:01 三生石1314 阅读(197) 评论(0) 推荐(0)
摘要:当前执行字节码的行号指示器,可以通过修改该计数器的值来实现字节码指令(分支,循环,跳转等), 每个线程都都有一个程序计数器, 属于线程的私有变量, 独立存储, 互不影响。 ps. 如果当前执行的是Java方法,该计数器记录的事正在执行的指令地址。如果当前执行的事Native方法(本地方法,与平台有关 阅读全文
posted @ 2018-07-10 21:55 三生石1314 阅读(163) 评论(0) 推荐(0)