JVM
JVM
JH灰色
☠
展开
-
JVM:类加载阶段和类加载器
文章目录一、类加载阶段1. 加载2. 连接1、验证2、准备3、解析3. 初始化二、类加载器1. 启动类加载器2. 扩展类加载器3. 双亲委派模型4. 线程上下文类加载器5. 自定义类加载器一、类加载阶段1. 加载将类的字节码载入方法区中,内部采用 C++ 的 instanceKlass 描述 java 类,它的重要 field 有:_java_mirror 即 java 的类镜,例如对 ...原创 2020-03-28 19:13:12 · 208 阅读 · 0 评论 -
JVM:字节码指令
文章目录字节码指令1. 入门2. 图解方法执行流程1、原始的java代码2、编译后的字节码文件3、常量池载入运行时常量池4、方法字节码载入方法区5、main 线程开始运行,分配栈帧内存6、执行引擎开始执行字节码3. 字节码角度分析 a++4. 条件判断指令5. 循环控制指令6. 练习----判断结果7. 构造方法原理1、 <cinit>()V2、 <init>()V8. 方...原创 2020-03-28 15:04:52 · 226 阅读 · 0 评论 -
JVM:类加载
类文件结构一个简单的 HelloWorld.java// 二进制字节码(类基本信息,常量池,类方法定义,包含了虚拟机指令)public class HelloWorld { public static void main(String[] args) { System.out.println("hello world"); }}运行后使用WinHex将...原创 2020-03-28 14:30:38 · 184 阅读 · 0 评论 -
JVM垃圾回收:3 GC调优
文章目录1. 最快的 GC是什么?2. 新生代调优3. 老年代调优4.案例Terminal终端:查看虚拟机运行参数"C:\Program Files\Java\jdk1.8.0_91\bin\java" -XX:+PrintFlagsFinal -version | findstr "GC"1. 最快的 GC是什么?答案:是不发生 GC查看 FullGC 前后的内存占用,考虑下面几个问...原创 2020-03-27 21:54:19 · 622 阅读 · 0 评论 -
JVM垃圾回收:2
文章目录垃圾回收器1. 串行2. 吞吐量优先(并行操作)3.响应时间优先(并发)4. G1垃圾回收器(Garbage First)1、G1垃圾回收阶段2、Young Collection(新生代收集阶段)3、Young Collection + CM(并发标记阶段)4、Mixed Collection(混合收集阶段)5、Full GC辨析6、Young Collection跨代引用7、Remark...原创 2020-03-27 20:21:29 · 254 阅读 · 0 评论 -
JVM垃圾回收:1
文章目录1、如何判断对象可以回收?1.1 引用计数法1.2 可达性分析算法2. 五种引用(前4种称为四种引用)1、如何判断对象可以回收?在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对象)了。1.1 引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时...原创 2020-03-26 23:06:22 · 206 阅读 · 0 评论 -
Windows如何查看CPU占用过高的线程?
在windows下只能查看进程的cpu占用率,要查看线程的cpu占用率要借助其他的工具,微软提供的 Process Explorer v15.3下载地址http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx下载后解压运行即可:1、查看进程的CPU的占用率:2、进程内线程的CPU占用率:3、把CPU占用过高的java...原创 2020-03-25 16:38:37 · 1941 阅读 · 0 评论 -
JVM内存结构
文章目录1.JVM定义2. 程序计数器3. 虚拟机栈1.JVM定义java虚拟机–java程序的运行环境(java二进制字节码的运行环境)好处:一次编写,到处运行;自动内存管理,垃圾回收功能;数组下标越界检查;多态比较:jvm jre jdk学习路线图:2. 程序计数器Program Counter Register 程序计数器(寄存器)作用:是记住下一条jvm指...原创 2020-03-25 12:08:07 · 249 阅读 · 0 评论