`
can_do
  • 浏览: 245811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于JVM中的强引用、软引用和弱引用=>StrongReference,SoftReference,WeakReference

阅读更多
>>>SoftReferences【软引用】 || WeakReferences【弱引用】 || StrongReferences【强引用】

>>>引用关系由强到弱为:StrongReferences > SoftReferences > WeakReferences

>>>StrongReferences是不能被GC掉的,无论大GC还是小GC,而WeakReferences在小GC时,就可以被清除掉,SoftReferences也可以被GC掉,只是时机有JVM控制,在heap紧张时才触发,典型如:在抛出OutOfMemoryError之前。

>>>StrongReference对立与WeakReference,而SoftReference是JVM企图尽量保存在内存中的引用,当Heap紧张时,才会触发SoftReference的回收,在抛出OutOfMemoryError之前,
  GC会清除所有的SoftReference。而StrongReference是一直留在内存中,不能被GC掉,WeakReference是小GC就可以清除掉的。一般发生OOM错误时,都是因为StrongReference的对象太大并且回收不掉导致的。

>>>当可用内存没什么压力时,尽量通过SoftReference来保持对对象的引用,SoftReference是可以被GC掉的,在-client模式下,JVM会优先清除SoftReference来减少内存痕迹。

>>>jvm以-client运行时,尽量减少内存痕迹,通过清除SoftReferences,而以-server方式运行时,优先通过扩展heap来保持性能,而不是尝试去清除SoftReference。
分享到:
评论

相关推荐

    Java虚拟机(四)——Java引用对象4种类型

    他们分别是强引用(StrongReference),软引用(SoftReference),弱引用(WeakReference)以及PhantomReference(虚引用),他们被 GC回收的可能性从小到大排列。 强引用(StrongReference) 只要强引用存在,垃圾回收器将...

    cucumber-jvm-learn

    Cucumber-jvm-学习 项目堆栈 Java JDK Intellij IDE 玛文 Cucumber和小Cucumber插件 Intellij设置 在Intellij->首选项->插件->插件搜索中启用以下插件 Maven整合 适用于Java的Cucumber 小Cucumber Maven设置 从...

    java 查看JVM中所有的线程的活动状况

    java 查看JVM中所有的线程的活动状况 java 查看JVM中所有的线程的活动状况

    Android利用软引用和弱引用避免OOM的方法

     在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要用到软引用和弱引用了。...

    对象在jvm中的存储情况

    java对象在jvm中的存储情况 jvm

    java开发与运行环境

    一些java基础知识笔记,1.JDK:java开发工具包,2.JVM:java虚拟机,3.JRE:java运行环境,二、平台:API(Java Application Programming Interface)+JVM,三、Java源代码==>编译==>*.class文件(字节码文件) (*代表...

    JVM中文指令手册.pdf

    这个是jvm指令手册,可以通过该手册查找理解字节码程序,超详细,超好用!!

    JVM基础.doc

    学习关于JVM基础,java内模型的全面透析,Jar hell问题以及解决办法,Class文件格式 • Java编译执行流程 • ClassFile的格式介绍 • ClassFile中FieldInfo和MethodInfo介绍 • 类型描述Descriptor介绍 • ClassFile...

    JVM中对象的生命周期

    关于JVM中对象的生命周期的讲解,不错!!

    JVM内存管理和垃圾回收

    <<JVM内存管理和垃圾回收>> word版 博文链接:https://ayufox.iteye.com/blog/214411

    vagrant-hbase-solr:在制品

    ==> default: Setting javahome to /usr/lib/jvm/java-7-oracle/ ==> default: stdin: is not a tty ==> default: Screen with namenode already running ==> default: Screen with datanode already running ==> ...

    深入JVM内核 - 原理、诊断与优化

    本章是理论性较强的一章,主要介绍GC的基本算法和思想,本章作为下一章节的前序课程。 第五课 GC控制参数 Serial ParNew等GC参数 GC的参数搭配实例分析 介绍GC的设置参数,并分析相关的案列。 第六课 类装载 ...

    jvm中的堆.xmind

    自己总结的jvm中堆的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者

    jvm源码jvm源码jvm源码

    jvm源码

    JVM规范--高手总结

    3.2.1 Reference Counting(引用计数) 22 3.2.2 跟踪收集器 22 3.3 JVM的垃圾收集策略 27 3.3.1 Serial Collector 28 3.3.2 Parallel Collector 29 3.3.3 Concurrent Collector 30 Java虚拟机(JVM)参数配置说明 30

    JVM原理讲解和调优,详细讲解JVM底层

    JVM原理讲解和调优 JVM原理讲解和调优 JVM原理讲解和调优

    jvm 配置jvm参数

    jvm 配置jvm参数 配置jvm参数

    在JVM5.0中调配Garbage Collection

    在JVM5.0中调配Garbage Collection 在JVM5.0中调配Garbage Collection 在JVM5.0中调配Garbage Collection

    高级开发jvm面试题和答案.pdf

    面试高级开发的期间整理的面试题目,记录我面试遇到过的jvm题目以及答案,比较常见的虚拟机面试题目 虚拟机内存 jvm jvm内存结构; 栈的顺序:先进后出,栈中方法的顺序 jvm调优; 对象 对象的创建过程; 对象在内存...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    本系列课程从JVM基础到高级实战,老师手把手教你如何进行JVM调优,思路清晰,没有废话,旨在挑战高薪。 课程亮点: 1、基于阿里arthas进行JVM调优; 2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路;...

Global site tag (gtag.js) - Google Analytics