`
dbp_cn
  • 浏览: 85688 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

再谈引用

 
阅读更多

有些对象,当内存空间还足够时,则希望能保留在内存中;如果内存在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。很多系统缓存功能都符合这样的应用场景。

 在JDK1.2之后,Java对引用的概念进行了扩充,将引用分为强引用,软引用,弱引用,虚引用四种,这四种引用强度依次逐渐减弱。

  强引用就是指在程序代码之中普遍存在的,类似:Object obj=new Object() 这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。

       软引用用来描述一些还有用但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中并进行第二次回收。如果这次回收还是没有足够的内存,才会抛出内存溢出异常。

    弱引用也是用来描述非必需对象的,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到下仪次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。

    虚引用也称为幽灵引用或幻影引用,它是最弱的一种引用。为一个对象设为虚引用关联的唯一目的就是希望能在这个对象被收集器回收时收到一个系统通知。

分享到:
评论

相关推荐

    c++指针和引用的使用浅谈

    在C++编程语言中,指针和引用是两种非常重要的概念,它们都允许我们间接访问内存中的对象。本文将深入探讨这两个主题,并通过实例来对比它们的使用方法和特性。 首先,指针是C++中的一种特殊类型,它存储的是一个...

    Javascript浅谈之引用类型

    2.引用类型的结构引用类型的值时由两部分构成,一是引用类型的值指代的对象的所属对象,这里我们姑且把它叫做base,二是base中的指代对象的对象名称。用伪代码来表示: 代码如下:var valueOfReferenceType = {base:...

    浅谈java面向对象和引用

    ### 浅谈Java面向对象与引用 在Java学习过程中,对于面向对象的理解和引用机制的掌握是至关重要的。本文将围绕这两个概念进行深入探讨,并针对初学者常见的疑惑点进行解答。 #### Java面向对象基础 Java是一种...

    HCNA-HNTD V2.1入门培训教材.pdf

    第三章专注于垃圾收集器与内存分配策略,讲解了垃圾收集的基础概念如引用计数、可达性分析、再谈引用以及对象的生与死。此外,介绍了不同的垃圾收集算法,包括分代收集理论、标记-清除、标记-复制以及标记-整理算法...

    理解了实现再谈网络性能.pdf

    本文的标题为《理解了实现再谈网络性能.pdf》,由张彦飞撰写,是一篇关于网络性能优化的技术性文章。文章讨论了如何通过深入理解网络技术细节,来实现网络性能的提升。张彦飞在文章中提到了自己的著作《网络篇》,...

    Java虚拟机

    3.2.3 再谈引用 3.2.4 生存还是死亡 3.2.5 回收方法区 3.3 垃圾收集算法 3.3.1 标记-清除算法 3.3.2 复制算法 3.3.3 标记-整理算法 3.3.4 分代收集算法 3.4 HotSpot的算法实现 3.4.1 枚举根节点 3.4.2 ...

    浅谈Asp.net多层架构中的变量引用与传递

    例如,表示层可能会创建一个`IDataParameter[]`数组,用于存储用户输入的参数,然后传递给逻辑层,逻辑层再传递给数据层。`DataSet`和`DataReader`作为数据容器,经常用于在逻辑层和表示层之间传递数据,因为它们能...

    浅谈C++左值引用和右值引用

    在C++编程语言中,引用是一种特殊的别名,它与变量名类似,但是不占用新的内存空间,而是直接指向已存在的变量。C++11引入了左值引用(lvalue reference)和右值引用(rvalue reference)的概念,以解决一些特定的...

    shell浅谈之一 变量和引用

    - `readonly`命令用于设置变量为只读,之后不能再进行赋值操作。 二、无类型变量特性 与C语言不同,shell脚本中的变量无需声明类型,它默认支持整型和字符型。如果变量值只包含数字,那么它被视为数值型;否则,...

    浅谈Java中的四种引用方式的区别

    本文将深入探讨这四种引用——强引用、软引用、弱引用和虚引用,以及它们在内存管理和垃圾回收中的作用。 1. **强引用(StrongReference)** - 强引用是最常见的引用类型,它代表了最常见的对象引用。只要一个对象...

    Excel使用大全(数据分析引用及常用技巧)

    谈到Excel函数,我们不能不提财务函数。财务函数是Excel中的一个重要类别,它们专门用于解决金融问题,如投资回报、现金流分析、折现率等。例如,PV(现值)函数计算未来现金流的当前价值,FV(未来值)则相反,预测...

    浅谈Java引用和Threadlocal的那些事

    浅谈Java引用和Threadlocal的那些事 本文主要介绍了Java引用和Threadlocal的知识点,包括Java中的引用类型、Threadlocal的使用等。 Java中的引用类型: Java中有四种引用类型:强引用(Strong Reference)、软...

    C语言中级-8再谈指针

    通过在指针前加上星号(*),我们可以获取指针所指向的变量的值,这被称为解引用。例如,`int y = *p;`会将`p`所指向的值赋给`y`。 四、指针运算 C语言中的指针支持加减运算,但这并不意味着它们可以像整数那样进行...

    浅谈C#中的值类型和引用类型

    C#只有两种数据类型:值类型和引用类型 值类型在线程栈分配空间,引用类型在托管堆分配空间 值类型转为引用类型称成为装箱,引用类型转为值类型称为拆箱 以下是值类型和引用类型对照表 从上图可以简单看出:string...

    浅谈Java中对类的主动引用和被动引用

    浅谈Java中对类的主动引用和被动引用 Java 中的类引用可以分为两种:主动引用和被动引用。理解这两种引用机制对于 Java 程序的正确执行和优化至关重要。 一、主动引用 主动引用是指在 Java 程序中明确地使用某个...

    浅谈C语言中的强符号、弱符号、强引用和弱引用

    在C语言中,链接器处理程序的不同部分时,会遇到强符号、弱符号、强引用和弱引用的概念。这些概念对于理解和解决多源文件项目中的符号冲突至关重要。 首先,强符号是那些在编译时被定义并且初始化的全局变量或者...

    浅谈vue引用静态资源需要注意的事项

    项目结构如下: 想在icon.styl文件夹里面引用字体图标,使用相对路径,但是报错...以上这篇浅谈vue引用静态资源需要注意的事项就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    浅谈Java 中的引用类型

    Java 中的引用类型是 Java 开发者非常熟悉的一个概念,它们从强到弱分别是:强引用、软引用、弱引用和虚引用。下面我们详细看看这些引用类型。 强引用 强引用是 Java 中最常见的一种引用类型。例如,Object object...

Global site tag (gtag.js) - Google Analytics