2021年12月20日

JVM空间分配担保

摘要: 老年代作为To Survivor区的担保区域,当Eden + From Survivor 中存活对象的总大小超出To Survivor时,将尝试存入老年代。JDK6之后,只要老年代的连续空间大于新生代对象的总大小,或之前晋升的平均大小,则只会进行Minor Gc,否则进行Full gc 阅读全文

posted @ 2021-12-20 17:35 MaXianZhe 阅读(64) 评论(0) 推荐(0) 编辑

ObjectMonitor

摘要: 内置锁(ObjectMonitor)# Monitor可以理解为一个同步工具或一种同步机制,通常被描述为一个对象。每一个Java对象就有一把看不见的锁,称为内部锁或者Monitor锁。 通常所说的对象的内置锁,是对象头Mark Word中的重量级锁指针指向的monitor对象,该对象是在HotSpo 阅读全文

posted @ 2021-12-20 15:33 MaXianZhe 阅读(163) 评论(0) 推荐(0) 编辑

对象访问定位的方式有哪些

摘要: 我们创建一个对象的目的当然就是为了使用它,但是,一个对象被创建出来之后,在 JVM 中是如何访问这个对象的呢?一般有两种方式:通过句柄访问和 通过直接指针访问。 如果使用句柄访问方式的话,Java 堆中可能会划分出一块内存作为句柄池,引用(reference)中存储的是对象的句柄地址,而句柄中包含了 阅读全文

posted @ 2021-12-20 15:30 MaXianZhe 阅读(310) 评论(0) 推荐(0) 编辑

Synchronized重量级锁

摘要: 当 monitor 被某个线程持有后,它就会处于锁定状态。在 HotSpot 虚拟机中,monitor 的底层代码是由 ObjectMonitor 实现的,其主要数据结构如下(位于 HotSpot 虚拟机源码 ObjectMonitor.hpp 文件,C++ 实现的) 这段 C++ 中需要注意几个属 阅读全文

posted @ 2021-12-20 15:25 MaXianZhe 阅读(61) 评论(0) 推荐(0) 编辑

JVM中对象是如何创建的

摘要: 在 JVM 中,对象是如何创建的? 如果要回答对象是怎么创建的,我们一般想到的回答是直接 new 出来就行了,这个回答不仅局限于编程中,也融入在我们生活中的方方面面。 但是遇到面试的时候你只回答一个"new 出来就行了"显然是不行的,因为面试更趋向于让你解释当程序执行到 new 这条指令时,它的背后 阅读全文

posted @ 2021-12-20 15:08 MaXianZhe 阅读(60) 评论(0) 推荐(0) 编辑

JVM的内存分配方式

摘要: 1 指针碰撞 2 空闲列表 阅读全文

posted @ 2021-12-20 13:41 MaXianZhe 阅读(11) 评论(0) 推荐(0) 编辑

公司的CMS参数

摘要: java -jar -Dcsp.sentinel.log.dir=/home/ymmapp/ymmapplogs/sentinel -javaagent:/data/gravity/gravity-agent.jar=appName=trade-om-app, baseUrl=http://grav 阅读全文

posted @ 2021-12-20 11:37 MaXianZhe 阅读(54) 评论(0) 推荐(0) 编辑

导航