首页 > 编程语言 >Java四种引用类型

Java四种引用类型

时间:2023-06-27 16:31:59浏览次数:39  
标签:Java 对象 回收 引用 类来 四种 内存

强引用:在Java中最常用的就是强引用,把一个对象赋值给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远不会被用到,JVM也不会回收。因此强引用时造成Java内存泄漏的主要原因之一。

软引用:需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时,它不会被回收,当系统内存空间不足时,它会被回收。软引用通常用在对象敏感的程序中。

弱引用:需要用WeakReference类来实现,它比软引用的生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制运行,不管JVM的内存空间是否足够,总会回收该对象占用的内存。

虚引用:需要PhantomReference类来实现,它不能单独使用,必须和引用对象联合使用。虚引用的主要作用的是跟踪对象被垃圾回收的状态。


标签:Java,对象,回收,引用,类来,四种,内存
From: https://blog.51cto.com/u_11315052/6564030

相关文章

  • ubuntu下java安装
    首先看自己的系统版本是什么,可以通过:uname-a的命令来查看,比如我的系统`22.04.1-Ubuntu XXX x86_64x86_64x86_64GNU/Linux`。去官网下载相关的包,地址:https://www.oracle.com/java/technologies/downloads/这里我们的是x86_64,选择x64CompressedArchive这个包下载。下载......
  • 简单谈谈JAVASCRIPT高级特性
    js中没有class的概念,我们可以使用function来模拟。惰性载入函数例如我们通常使用以下的js代码创建ajax:functioncreateXHR(){varxhr=null;try{xhr=newXMLHttpRequest();//FF、Opera、Safari、IE7}catch(e){handlerError(e);try{xhr=newActiveXOb......
  • Java内存区域
    JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【Java堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁(在HotspotVM内,每个线程都与操作系统的本地线程直接映射,因此部分内存区域的存/否跟随本......
  • java线程监控-jstack+jvisualvm
    Java线程监控一.Jstasck1.查找进程ps-ef|greptomcat-oa2.使用jstack监控jstack2429二、jvisualvm1.tomcat应用环境配置1.1tomcat环境配置修改tomcat中,catalina.sh文件cd/usr/src/tomcat-pinter/binvicatalina.sh在第二行添加如下:JAVA_OPTS="-Dcom.sun.mana......
  • Building a Dice Game using JavaScript Javascript构建一个dice game 项目
    WewillbebuildingaDiceGameProjectusingHTML,CSS,andJavaScript.TheDiceGameisbasedonatwo-player.Bothplayersrollthediceandtheplayerwhogetsthehighestphasevaluewillwinthegame.ImagesofDicePhases: Thelistofdicephasesi......
  • Selenium基础:cookie javascript调用 屏幕截图 09
    1、cookie操作 绕过登录get_cookies():以字典形式返回cookie所有信息get_cookies(name):返回cookie字典中key为name的值add_cookie(cookie_dict):手动添加cookie。cookie_dict为字典数据格式,cookie_dict中必须有name和value值delete_cookie(name):删除cookie字典中key为name的......
  • Excel JavaScript API for PivotTables
    WorkwithPivotTablesusingtheExcelJavaScriptAPI-OfficeAdd-ins|MicrosoftLearnPivotTablesstreamlinelargerdatasets.Theyallowthequickmanipulationofgroupeddata.TheExcelJavaScriptAPIletsyouradd-increatePivotTablesandinteractw......
  • Design a Drum-kit web app using JavaScript Javascript设计drum-kit项目
    Weallmusthaveseenadrumkitinsomeconcertorelsewhere,itisacollectionofdrums,cymbalsandotherpercussioninstruments.Buthaveyoueverimaginedmakingthatdrumkitonyourownvirtuallywiththehelpofsomescriptinglanguage?Well,so......
  • SAP UI5 本地注解文件词汇表内容引用的详细讲解
    本文解释SAPUI5本地注解xml文件里下列这个片段的语义:<edmx:ReferenceUri="../../catalogservice;v=2/Vocabularies(TechnicalName='%2FIWBEP%2FVOC_UI',Version='0001',SAP__Origin='LOCAL')/$value"> <edmx:IncludeNamespace="......
  • 在Androidstudio 中 通过jni java 和c++相互调用实现方法
    在Androidstudio中通过jnijava和c++相互调用实现方法1.创建javanative方法类publicclassNativeAPI{privatestaticfinalStringTAG=APP_TAG+"TestJni";static{System.loadLibrary("testnative");}//从c++so中获取字符串publicna......