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

【Java】的四种引用类型

时间:2024-05-11 14:43:27浏览次数:23  
标签:Java String 回收 引用 new 四种 内存

(一) 强引用

Java强引用最常见,就是把一个对象赋给一个引用变量,这个引用变量就是强引用,但一个对象被强引用时,它处于可达状态,不会被垃圾回收装置回收,因此强引用是造成内存泄漏的主要原因之一。

String s=new String("ABC");

(2)软引用

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

1 SoftReference<String> ss = new SoftReerence<String>(new String("abc"));

(3)弱引用

使用WeakReference来实现,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,总会回收该对象占用的内存。

WeakReference<String> s = new WeakReference<String>(new String("ABC"));

(4)虚引用

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

PhantomReference<String> prf = new PhantomReference<String>(new String("ABC"),new ReferenceQueue<>());

标签:Java,String,回收,引用,new,四种,内存
From: https://www.cnblogs.com/zzsuje/p/18186457

相关文章

  • Java开发利器Commons Lang之元组Tuple
    标准Java库没有提供足够的方法来操作其核心类,ApacheCommonsLang提供了这些额外的方法。ApacheCommonsLang为java提供了大量的帮助工具。langAPI,特别是String操作方法、基本数值方法、对象反射、并发、创建和序列化以及System属性。此外,它还包含对java.util.Date的基本增......
  • [附源码+文档]Java Swing小游戏源码合集(14款)_毕业设计必选项目
    (小众游戏塔防迷宫动作剧情类等)16款游戏源码Javaswing五子棋联网版源代码Javaswing贪吃蛇游戏开发教程+源码Javaswing超级玛丽游戏Javaswing俄罗斯方块项目源码Javaswing飞机大战游戏源码Javaswing雷电游戏源码Javaswing连连看游戏源码Javaswing模拟写字板源码......
  • Java异常处理的最佳实践
      本文是关于Exception处理的一篇不错的文章,从JavaException的概念介绍起,依次讲解了Exception的类型(Checked/Unchecked),Exception处理的最佳实现:选择Checked还是Unchecked的几个经典依据Exception的封装问题如无必要不要创建自己的Exception不要用Excepti......
  • Java拦截器(Interceptor)详细解析
    转载链接地址:https://www.cnblogs.com/xiaoyh/p/16444681.html一、拦截器概念讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器(2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源(3)如果是静态资源,会直接到Tomcat......
  • 基于spring boot Java的数组转树状结构类
    基于springboot的数组转树状结构类importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.List;importjava.util.function.Function;publicclassArray{private<E,V>VcreateViewObject(Eentity,Class<V>viewObjectClass)thro......
  • java常用加密手段
    虽然一般都会给APK上壳。但是拖壳还是要分析JAVa链接:https://pan.baidu.com/s/1Qm0cF0u7RCGy174QYeVf2Q?pwd=c60g提取码:c60g1.隐藏字节-将明文字符串->转为字节定义publicstaticvoidmain(String[]args)throwsIOException{Stringstrq=newString(newbyte[]{97,......
  • 第一个JAVA代码
    第一个JAVA代码创建存放代码的文件夹在合适的路径中新建存放代码的文件夹。新建一个Java文件1.新建一个文件2.文件名为HelloWorld3.将后缀改为.java输入代码使用notepad++打开新建的文件,输入以下代码并保存publicclassHelloWorld{ publicstaticvoidmain(String[]a......
  • Java面试题:Spring Bean线程安全?别担心,只要你不写并发代码就好了!
    Spring中的Bean是否线程安全取决于Bean的作用域(scope)。Spring提供了几种不同的Scope,其中包括Singleton、Prototype、Request、Session、GlobalSession等。 SingletonScope(单例模式)默认情况下,SpringBean是SingletonScope,这意味着在整个应用程序上下文中只有一个实例。......
  • JAVA下载安装配置基础
    JAVA下载安装配置基础JDK、JRE、JVMJDK:JavaDevelopmentKitJava开发者工具,他包含JRE和JVMJRE:JavaRuntimeEnvironmentJava运行时环境包含JVMJVM:JAVAVirtualMachineJave虚拟机下载配置JDK搜索下载JDK8(目前使用率较高的版本)安装JDK记住安装的路径进入高......
  • 【MySQL】求和查询,目标值int,但空数据时返回null的问题(Java)
    问题分析intselectDeviceMonthRepairCount(StringdeviceType,Stringmonth);<selectid="selectDeviceMonthRepairCount"resultType="int">SELECTSUM(repair_count)FROMwarranty_recordsWHEREdevice_type=......