JVM
文章平均质量分 87
jvm相关
weixin_38681369
这个作者很懒,什么都没留下…
展开
-
(SUB)常见JVM参数
Hotspot 遍历所有对象时,按照年龄从小到大对其所占用的大小进行累积,当累积的某个年龄大小超过了 survivor 区的 50% 时(默认值及最大值是 50%,可以通过 -XX:TargetSurvivorRatio=percent 来设置 ),取这个年龄和 MaxTenuringThreshold (默认为 15(因为对象头中4字节所以15 CMS 6),CMS默认值为6 岁,可以通过参数 -XX:MaxTenuringThreshold 来设置)中更小的一个值,作为新的晋升年龄阈值”。原创 2024-03-18 08:12:47 · 403 阅读 · 0 评论 -
(ROOT)并发编程3-ThreadLocal
把connection放在当先线程的ThreadLocal里面,以后拿的时候从ThreadLocal直接拿,不去线池里面拿。connection在连接池里,不同的connection之间怎么形成完整的事务?ThreadLocalMap是当前Thread的一个成员变量。222行的this是当前的ThreadLocal对象。ThreadLocal 修饰的变量,是线程独有的。Spring的声明式事务在一个线程里。ThreadLocal是怎么做到的?Spring的声明式事务会用到。原创 2023-09-14 17:04:53 · 16 阅读 · 0 评论 -
(ROOT)jvm与垃圾回收总结
3. 加密自定义类加载器_每天都要进步一点点的博客-CSDN博客(简单做法)原创 2023-09-12 10:29:32 · 30 阅读 · 0 评论 -
(SUB)java运行时数据区
因为你看下面的第一条指令,我们知道,刚new出来对象是半初始化的对象,只是赋一个默认值,而involespecial才是调用构造方法,给变量赋初始值,而这两条指令之间是可能会发生指令重排的。动态链接:指向运行时常量池里面的符号链接,看有没有解析,如果没有解析,就动态解析,如果已经解析了,就拿过来使用。在1.8之前有一个巨大的bug,就是你在里面产生了很多对象,但是Perm Space在FGC的时候是不会回收的。匿名内部类每次都是动态产生的。自带多态:new 的是哪个对象,调用的就是哪个对象的方法。原创 2023-09-14 10:53:17 · 14 阅读 · 0 评论 -
(SUB)class文件详解
3. 加密自定义类加载器_每天都要进步一点点的博客-CSDN博客。原创 2023-09-14 10:30:47 · 18 阅读 · 0 评论 -
(SUB)JVM-JMM相关
原子指令,如x86上的”lock …b. 该变量超过一个缓存行的大小,缓存一致性协议是针对单个缓存行进行加锁,此时,缓存一致性协议无法再对该变量进行加锁,只能改用总线加锁的方式。CPU为了提高效率,会在一条指令执行过程中(比如去内存读数据,慢100倍),去同时执行另一条指令。MESI协议只对汇编指令中执行加锁操作的变量有效,表现到java中为使用voliate关键字定义变量或使用加锁操作。缓存读写不是一次缓存一个数据,而是一次缓存一行,缓存行多为64字节、通过缓存行对齐后,效率提升了。原创 2023-09-14 10:09:55 · 11 阅读 · 0 评论