随笔分类 -  java / JVM

摘要:强引用:普通对象的强引用关系。如:直接的赋值语句:String str=new String(“string”);强引用不会被垃圾回收。 软应用:当内存不足时,具有软引用关系的对象会被垃圾回收。 弱引用:不管内存足不足,都会被垃圾回收。 虚引用:虚引用通常配合引用队列来使用,用于跟踪对象被垃圾回收的 阅读全文
posted @ 2023-05-27 15:14 程序员_YHB 阅读(162) 评论(0) 推荐(0) 编辑
摘要:JVM有四种垃圾回收器: (1)串行垃圾回收器:采用单线程进行垃圾回收,占用内存比较小,适合个人电脑使用。 serial垃圾回收器:用于新生代垃圾回收,采用标记复制算法。 serial Old垃圾回收器:用于老年代垃圾回收,采用标记整理算法。 缺点:垃圾回收时只有一个线程在工作,其它java应用的线 阅读全文
posted @ 2023-05-27 14:51 程序员_YHB 阅读(118) 评论(0) 推荐(0) 编辑
摘要:判断一个对象是否存活的方法: (1)引用计数法:给每个对象设置一个引用计数器,对象被引用时就+1,引用失效时就-1,当对象的引用为0时,该对象就被视为垃圾对象,等待垃圾回收。但是该方法不能解决循环引用问题。例如:A引用B,B应用A。现在的虚拟机一般不用这种方法。 (2)可达性分析法:沿着GC Roo 阅读全文
posted @ 2023-05-27 13:54 程序员_YHB 阅读(15) 评论(0) 推荐(0) 编辑
摘要:类加载:把类的数据加载到内存,并对数据进行校验、解析、初始化,最终形成可以被虚拟机直接使用的class对象。 类加载机制:类加载采用双亲委派机制。 双亲委派机制:当类加载器收到类加载请求时,它不会第一时间去加载这个类,而是由父类加载器去加载,如果父类加载器加载不到这个类,才由子类加载器加载。 双亲委 阅读全文
posted @ 2023-05-26 14:00 程序员_YHB 阅读(65) 评论(0) 推荐(0) 编辑
摘要:常量池:可以看作是一张表,虚拟机指令根据常量表找到要执行的类名、方法名、参数类型、字面量等信息。 查看字节码结构的指令:javap -v xxx.class。 运行时常量池:当类被加载,会把该类的常量池信息放入运行时常量池中,并把里面的符号地址变为真实地址。 阅读全文
posted @ 2023-05-26 13:37 程序员_YHB 阅读(3) 评论(0) 推荐(0) 编辑
摘要:JVM内存结构由五部分组成: 堆:java堆是所有线程共享的一块内存,几乎所有的对象实例和数组都要在堆中分配内存,因此该区域也经常发生垃圾回收操作。 方法区:线程共享的。存放已被加载的类信息、常量、静态变量。 虚拟机栈:线程私有的,每个方法执行时都会创建一个栈帧,用来存储局部变量表、操作数、动态链接 阅读全文
posted @ 2023-05-25 14:37 程序员_YHB 阅读(30) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示