jvm
文章平均质量分 89
哀嚎的狗子
不悲叹过去,不荒废现在,不惧怕未来
展开
-
synchronized关键字介绍(秋招篇)——下
七、synchronized底层原理 在jdk1.6之前,synchronized被称为重量锁,在jdk1.6中,为了减少获得锁和释放锁带来的性能开销,引入了偏向锁和轻量级锁。下面先介绍jdk1.6之前的synchronized原理。 对象头 在HotSpot虚拟机中,Java对象在内存中的布局大致可以分为三部分:对象头、实例数据和填充对齐。因为synchronized用的锁是存在对象头里的,这里我们需要重点了解对象头。如果对象头是数组类型,则对象头由Mark Word、Class Metada原创 2021-12-03 16:37:16 · 463 阅读 · 0 评论 -
synchronized关键字介绍(秋招篇)——上
一、心路历程 在Java并发编程当中,synchronized关键字无疑是被问到频率较高的一个问题,在面试当中,很多面试官对你对synchronized关键字及对它底层的了解程度都是比较重视的。如果你能回答上来,无疑是比较加分的。以下是个人通过自己了解到的,已经书中的知识结合总结的内容,欢迎大家指正! 二、什么是synchronized关键字 在多线程的环境下,多个线程同时访问共享资源会出现一些问题,而synchronized关键字则是用来保证线程同步的。 三、JMM及Java内存的可见性 那我们原创 2021-12-03 11:15:07 · 398 阅读 · 0 评论 -
方法区、永久代、元空间的区别
上图为JVM运行时数据区。 1、方法区:(逻辑上) 是JVM的一个规范,所有虚拟机必须要遵守的。 是JVM所有线程共享的,主要用于存储类的信息、常量池、方法数据、方法代码等。 方法区逻辑上属于堆的一部分(下文会有提及),但是为了与堆区分,通常又叫非堆(Heap)区 2、堆 堆是JVM中线程共享的,在虚拟机启动的时候就已创建。 所有对象(对象本身)和数据都在堆中存放,也是GC的主要区域 3、PermGen(永久代) PermGen, 就是PermGen space,全称是Perma...原创 2021-10-26 11:37:19 · 3739 阅读 · 2 评论