java面试虚拟机
dyjs.akcnzssa.s.
这个作者很懒,什么都没留下…
展开
-
JVM的类加载器和双亲委派机制
所以,双亲委派指得是,JVM在加载类时,会委派给Ext和Bootstrap进⾏加载,如果没加载到才由⾃⼰ 进⾏加载。原创 2024-03-25 16:09:26 · 298 阅读 · 0 评论 -
一个类的加载过程
2.2准备–为静态变量分配空间,并赋予默认值。为static final 基本数据类型,设置固定值。 1.1用到这个类时,把这个类的字节码文件加载方法区,并创建类.class对象(堆内存中)2.3解析 – 将常量池的符号引用解析为直接引用。 1.2如果这个类有父类会先加载他的父类。 2.1验证–验证字节码文件的正确性。原创 2024-03-25 15:59:03 · 192 阅读 · 0 评论 -
典型内存溢出场景
使用了Executors.newCachedThreadPool();创建的线程池对象,最大线程数没有上限,任务数过多,导致创建了很多救急线程,导致内存溢出。创建的线程池对象使用的工作队列是一个无上限的队列,队列数没有上限,任务数过多,导致队列塞满,内存溢出。2.查询数据量太大导致的内存溢出。3.动态生成类导致的内存溢出。1.线程池导致内存溢出。使用Executors.原创 2024-03-25 15:20:37 · 201 阅读 · 0 评论 -
JVM垃圾回收机制
java垃圾回收的区域是虚拟机堆。原创 2024-03-23 20:45:24 · 1587 阅读 · 0 评论 -
JVM方法区(元空间)分区
class space 存储类的基本信息,最大值受 -XX:CompressedClassSpaceSize 控制non-class space 存储除类的基本信息以外的其它信息(如方法字节码、注解等)class space 和 non-class space 总大小受 -XX:MaxMetaspaceSize 控制原创 2024-03-23 19:19:23 · 193 阅读 · 0 评论 -
JVM堆(虚拟机堆)的分区
幸存区分为:from区和to区 from和to通常大小相等。新生代分为:伊甸园(eden)和幸存区(survivor)JVM堆分为:新生代(young)和老年代(old)原创 2024-03-23 19:13:01 · 330 阅读 · 0 评论