租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

java强引用和弱引用有什么不同,java四种引用从强到弱

发布时间:2023-10-27 17:02:18

java强援用和弱援用有甚么不同

Java的援用分为四种:强援用(Strong Reference)、软援用(Soft Reference)、弱援用(Weak Reference)和虚援用(Phantom Reference)。其中,强援用和弱援用的不同以下:

  1. 生命周期:强援用可以禁止被援用对象被垃圾回收,只有当强援用被置为null时,才会被垃圾回收。而弱援用不会禁止被援用对象被垃圾回收,在垃圾回收时,不管弱援用是否是被置为null,都会被回收。

  2. 内存管理:强援用需要手动释放内存,而弱援用会自动释放内存。当一个对象只被弱援用援用时,即便堆内存不足,垃圾回收器也会回收该对象的内存,从而避免了内存泄漏的问题。

  3. 使用处景:强援用适用于需要确保对象一直存在的情况,如单例模式中的对象。而弱援用适用于缓存、缓存清除、对象池等场景,可以在内存不足时自动释放缓存对象,从而保证系统的稳定性。

总结来讲,强援用会一直持有对象,直到被手动置为null,而弱援用不会禁止对象被垃圾回收器回收,适用于对内存敏感的场景。