java的引用类型一般分为四种:强引用软引用、弱引用、虚引用

强引用:普通的变量引用

public static User user = new User();

软引用:将对象用SoftReference软引用类型的对象包裹,正常情况不会被回收,但是GC做完后发现释放不出空间存放

新的对象,则会把这些软引用的对象回收掉。软引用可用来实现内存敏感的高速缓存。

public static SoftReference<User> user = new SoftReference<User>(new User());

软引用在实际中有重要的应用,例如浏览器的后退按钮。按后退时,这个后退时显示的网页内容是重新进行请求还是从缓存中取出呢?这就要看具体的实现策略了。

(1)如果一个网页在浏览结束时就进行内容的回收,则按后退查看前面浏览过的页面时,需要重新构建 。

(2)如果将浏览过的网页存储到内存中会造成内存的大量浪费,甚至会造成内存溢出 。

弱引用:将对象用WeakReference软引用类型的对象包裹,弱引用跟没引用差不多,GC会直接回收掉,很少用

public static WeakReference<User> user = new WeakReference<User>(new User());

虚引用:虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系,几乎不用。

java常见引用类型相关推荐

  1. java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub

    Java常见对象 Arrays Arrays:针对数组进行操作的工具类. Arrays的常用成员方法: public static String toString(int[] a) //把数组转成字符 ...

  2. Java 常见的 30 个误区与细节

    转载自 Java 常见的 30 个误区与细节 1.在Java中,没有goto语句.因为大量使用goto语句会降低程序的可读性和可维护性,所以Java语言取消了goto的使用.同时,为了避免程序员自行使 ...

  3. JAVA常见面试问题以及答案

    在网上看到的,前一段时间也是在忙面试的事情,感觉总结的挺好的,这两天有时间了花点时间把答案整理出来. 一.Java基础 1. String类为什么是final的. 2. HashMap的源码,实现原理 ...

  4. Java常见知识点汇总

    Java常见知识点汇总 基础概念与常识 1.Java 语言有哪些特点? 2.JVM vs JDK vs JRE 3.什么是字节码?采用字节码的好处是什么? 4.为什么不全部使用 AOT 呢? 5.为什 ...

  5. Java常见数据结构以及特点、使用场景

    Java常见数据结构以及特点 Java中常见的数据结构,主要分为Collection和Map两种主要接口,程序中的数据结构是继承这些接口的数据结构类. Collection接口: List 接口继承: ...

  6. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  7. 【Java基础】Java常见的异常

    Java常见的异常 1. java.lang.NullPointerException (空指针异常)调用了未经初始化的对象或者是不存在的对象 2. java.lang.ClassNotFoundEx ...

  8. java 常见几种发送http请求案例

    java 常见几种发送http请求案例 直接换成CloseableHttpClient还不行,需要这样使用CloseableHttpClient httpClient = HttpClientBuil ...

  9. Java 常见异常种类

    Java 常见异常种类 参考文章: (1)Java 常见异常种类 (2)https://www.cnblogs.com/cvst/p/5822373.html 备忘一下.

最新文章

  1. float、double(浮点数)区别还有和decimal(定点数)的比较
  2. [每天进步一点 -- 流水账]第1周
  3. 使用Lucid Virtu在有独立显卡的情况下使用Intel硬件加速H.264编码
  4. openssl rsa密钥
  5. 做游戏,学编程(C语言) 5 数组之生命游戏
  6. CO1 Introduction
  7. Jmeter与数据库的连接
  8. 使用递归函数求解字符串的逆置问题
  9. itunes安装后不能用,双击后等很长时间,提示:ITUNES 驱动程序缺少用于导入和刻录的CD与DVD注册的设置...
  10. java类图资料整理
  11. white-space 与换行和空格的控制?
  12. Mysql - 开发技巧(二)
  13. 21个小故事,21个启示
  14. hive URI ${systemjava.io.tmpdir%7D$%7Bsystemuser.name%7D
  15. java windows wifi密码_windows10 通过命令行来查看wifi密码
  16. DOS命令——calcs和icacls
  17. 判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.
  18. 欧姆龙CJ1W-SCU模块通过串口网关功能实现Modbus RTU通信
  19. 手机上哪款闹钟提醒APP好
  20. qiime微生物分析

热门文章

  1. 开源一个线上项目 WeAre-AR相册
  2. AfxMessageBox()与MessageBox()
  3. string类转数组 java_将java中的 string 类型转成 数组案例
  4. html中边框倒影怎么弄,巧用css3的-webkit-box-reflect 倒影属性实现各种特效
  5. 自媒体怎么赚钱,2级企鹅号自媒体怎么过3级开通原创
  6. Linux 路由配置详解
  7. DBeaver连接db2数据库
  8. ideaIC ideaIU区别
  9. 基于dns的网络分流处理-策略路由
  10. 【语音处理】用Matlab实现语音变速变调