![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 86
JF Coder
https://gitee.com/jf_g_admin
展开
-
使用PrintGCDetails查看JVM垃圾回收日志结构&解析
使用PrintGCDetails查看JVM垃圾回收日志结构&解析,包含垃圾回收日志的结构,并行垃圾回收器和G1的日志结构差异。在主线程中发生了Java堆空间不足的异常,意味着无法再分配足够的内存。异常的发生-还是跟G1相对复杂的运行原理有关系,相比CMS等老一点的垃圾收集器,G1需要花费大概30%的内存去维护G1低延迟的回收操作,比如Region区域的维护,垃圾碎片扫描等。原创 2024-07-13 15:18:49 · 1042 阅读 · 0 评论 -
常见的几个JVM调优场景
讲几个常用的JVM调优场景,经常使用的参数讲解。原创 2024-03-20 23:31:58 · 1418 阅读 · 1 评论 -
在并发场景如何正确的使用锁机制呢?
在日常并发场景中,正确使用锁机制是非常重要的,因为不恰当的锁使用会导致死锁、饥饿等问题,影响程序的性能和可靠性。在日常并发场景中,我们需要根据具体情况选择合适的锁机制,并注意锁的粒度、死锁的预防、饿汉式锁、可重入锁等方面的问题。在选择锁的粒度时,需要考虑到锁的开销和锁的竞争情况。如果锁的粒度过小,会导致锁的开销过大,增加程序的复杂度。如果多个线程需要获取多个锁,就应该按照相同的顺序获取锁,这样可以避免死锁的发生。在获取锁的时候,可以设置一个超时时间,如果在规定时间内没有获取到锁,就放弃获取锁。原创 2024-03-10 13:29:14 · 538 阅读 · 1 评论 -
JVM基础和调优
CMS和G1回收器,G1的并发标记周期,为什么要JVM调优? 减少GC,特别是FullGC对象优先在堆的 Eden 区分配大对象直接进入老年代长期存活的对象将直接进入老年代. 当 Eden 区没有足够的空间进行分配时,原创 2021-04-13 18:37:29 · 29049 阅读 · 18 评论 -
JVM 运行时数据区详解
运行时数据区JVM规范定义了程序执行期间所需的某些运行时数据区域。其中一些是在JVM启动时创建的。其他线程是线程本地的,仅在创建线程时创建(在销毁线程时销毁)。这些在下面列出PC(程序计数器)寄存器它在每个线程本地,并且包含该线程当前正在执行的JVM指令的地址栈它是每个线程局部的,并在方法调用期间存储参数,局部变量和返回地址。如果线程需要的堆栈空间超出允许的范围,则会发生StackOverflow(栈溢出)错误。如果堆栈是动态可扩展的,它仍然可以抛出OutOfMemoryError(内存越界)。原创 2020-12-08 10:49:24 · 4900 阅读 · 3 评论 -
Tomcat中类加载机制
Tomcat本身也是一个java项目,因此其也需要被JDK的类加载机制加载,也就必然存在引导类加载器、扩展类加载器和应用(系统)类加载器。CommonClassLoader作为CatalinaClassLoader和SharedClassLoader的parent,而SharedClassLoader又可能存在多个children类加载器WebAppClassLoader,一个WebAppClassLoader实际上就对应一个Web应用,那Web应用就有可能存在Jsp页面,这些Jsp页面最终会转成cla原创 2020-12-03 20:56:15 · 3271 阅读 · 3 评论 -
JVM面试Java 中会存在内存泄漏吗,请简单描述
Java 中会存在内存泄漏吗,请简单描述所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。Java 中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象变成了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC 也是可以回收它们的,例如下面的代码可以看到这种情况的内存回收:import java.io.IOException;publicclassG原创 2020-12-03 20:39:58 · 8122 阅读 · 1 评论 -
JVM面试 类加载机制
JVM的类加载机制一、JVM的运行机制JVM 是用于运行Java字节码的虚拟机,包括一套字节码指令集,一组程序寄存器,一个虚拟机栈,一个虚拟机堆,一个方法区和一个垃圾回收器。JVM运行在操作系统之上,不与硬件设备直接交互;Java程序具体运行过程:JAVA源文件被编译器编译成字节码文件JVM将字节码文件编译成相应操作系统的机器码机器码调用相应操作系统的本地方法库执行相应的方法二、JVM的类加载机制1.JVM的类加载阶段加载验证准备解析初始化在类初始化完成后就可以使用该原创 2020-10-28 20:13:38 · 7256 阅读 · 9 评论