![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
码农的世界,你不懂
这个作者很懒,什么都没留下…
展开
-
JVM之深入解析强引用、软引用、弱引用
关于强引用、软引用、弱引用、幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用。在java语言中,除了原始数据类型(boolean、byte、short、char、int、float、double、long)的变量,其他所有都是所谓的引用类型,指向各种不同的对象。理解这些引用的区别,对于掌握java对象生命周期和JVM内部相关机制非常有帮助。也有助于更深刻的理解底层对象生命周期、垃圾收集机制等,对设计可靠原创 2020-05-29 09:39:17 · 151 阅读 · 0 评论 -
JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子。同样,根据摩尔定律,我们知道单核CPU的主频不可能无限制的增长,要想很多的提升新能,需要多个处理器协同原创 2020-05-26 08:55:22 · 137 阅读 · 0 评论 -
JVM类加载过程与双亲委派模型
[backcolor=rgba(255, 255, 255, 0.9)]类加载过程为JVM将类描述数据从.class文件中加载到内存,并对数据进行解析和初始化,最终形成被JVM直接使用的Java类型。包含:加载:获取该类的二进制字节流,将字节流代表的静态存储结构转化为方法区的运行时数据结构,并在内存生成代表该类的 java.lang.Object 对象作为方法区该类的访问入口 验证:确保 C...原创 2020-04-13 09:11:52 · 195 阅读 · 0 评论 -
JVM系列五(javac 编译器)
一、概述 我们都知道 *.java 文件要首先被编译成 *.class 文件才能被 JVM 认识,这部分的工作主要由 Javac 来完成,类似于 Javac 这样的我们称之为前端编译器; 但是 *.class 文件也不是机器语言,怎么才能让机器识别呢?就需要 JVM 将 *.class 文件编译成机器码,这部分工作由JIT 编译器完成;...原创 2020-02-10 10:57:35 · 186 阅读 · 0 评论 -
面试你能搞懂JVM了吗,快看看这20道JVM面试题
1、内存模型以及分区,需要详细到每个区放什么? 2、堆里面的分区:Eden,survival (from+ to),老年代,各自的特点? 3、对象创建方法,对象的内存分配,对象的访问定位? 4、GC 的两种判定方法? 5、SafePoint 是什么? 6、GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么...原创 2020-02-07 10:25:40 · 86 阅读 · 0 评论