
JVM总结序列
JVM总结。
人在^O^旅途
越努力越幸运!
展开
-
【JVM面试系列2】Java虚拟机类加载机制及双亲委派模式分析
文章目录前言编译Class文件Class文件结构Class文件示例魔数主次版本号其他类加载机制加载(Loading)双亲委派模式破坏双亲委派模式常见异常ClassNotFoundException和NoClassDefFoundErrorClassNotFoundExceptionNoClassDefFoundError连接(Linking)验证(Verification)准备(Preparation)解析(Resolution)常见异常符号引用直接引用初始化(Initialization)初始化实战举例使原创 2020-11-16 15:09:20 · 509 阅读 · 1 评论 -
【JVM面试系列5】深入分析Java垃圾收集算法和常用垃圾收集器
文章目录前言如何确定无效对象引用计数法(Reference Counting)可达性分析算法(Reachability Analysis)GC Root引用的分类(1)强引用(2)软引用(3)弱引用(4)虚引用(Phantom Reference)垃圾收集算法:1、标记-清除(Mark-Sweep)算法标记-清除算法的缺点2、复制(Copying)算法复制算法的缺点复制算法在Java虚拟机的落地形式3、标记-整理(Mark-Compact)算法分代收集算法(Generational Collection)4原创 2020-11-10 16:36:46 · 361 阅读 · 0 评论 -
【JVM面试系列4】new Object()到底占用几个字节,面试常见问题
文章目录总结对象的指向Java内存模型对象的访问堆内存Young区Old区名词扫盲一个对象的人生轨迹图总结总结上一篇我们分析了Java虚拟机方法执行流程及方法重载和方法重写原理,并分析了方法的调用过程及原理,Java虚拟机栈是线程私有的,没有数据安全问题,而堆相比较于Java虚拟机栈而言更为复杂,因为堆是所有线程共享的一块内存空间,会出现线程安全性问题,而垃圾回收也主要是回收堆内空间,所以堆内的布局我们非常有必要深入去了解一下。现在就让我们继续来分析一下堆内布局以及Java对象在内存中的布局把。对象的原创 2020-11-06 16:14:22 · 317 阅读 · 0 评论 -
【JVM面试系列3】方法重载和方法重写原理分析
文章目录结论基本概念重载overload结论1.重载(overload)方法对重载方法的调用主要看静态类型,静态类型是什么类型,就调用什么类型的参数方法。2.重写(override)方法对重写方法的调用主要看实际类型。实际类型如果实现了该方法则直接调用该方法,如果没有实现,则在继承关系中从低到高搜索有无实现。3.java文件的编译过程中不存在传统编译的连接过程,一切方法调用在class文件中存放的只是符号引用,而不是方法在实际运行时内存布局中的入口地址。基本概念1.静态类型与实际类型,方法接原创 2020-11-06 11:02:14 · 168 阅读 · 0 评论 -
【JVM面试系列1】深入分析Java虚拟机堆和栈及OutOfMemory异常产生原因
Java虚拟机中的堆和栈 前言什么是JVMJava程序执行流程运行时数据区PC(program counter) Register(程序计数器)Heap(堆)模拟堆内OutOfMemoryError Method Area(方法区)Run-Time Constant Pool(运行时常量池)字面量String字符串去哪了intern()方法new String("lonely")创建了几个对象 符号引用 jdk1.7和1.8的实现方法区的差异模拟方法区OutOfMemoryErr.原创 2020-11-04 11:03:58 · 410 阅读 · 0 评论