Java-对象引用
OkidoGreen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不只是给面试加分 -- Java WeakReference的理解与使用
前言: 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak reference是什么, 怎么用, 只是期望有人能够提到这个concept和java的GC相关. 很可惜的是, 20多个拥有5年以上java开发经验的面试者中, 只有两人知道weak reference的存在,转载 2016-12-07 17:55:41 · 2926 阅读 · 0 评论 -
关于Java中的WeakReference
https://www.jianshu.com/p/964fbc30151a一. 简介在看ThreadLocal源码的时候,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc,为了能搞清楚ThreadLocal,只能先了解下了WeakReferenc(是的,很多时候为了搞清楚一个东西,不得不往上追好几层,先搞清楚其所依赖的东西。)下面进入正题,WeakRe...转载 2019-03-06 18:40:11 · 635 阅读 · 0 评论 -
堆外内存 之 DirectByteBuffer 详解
https://www.jianshu.com/p/007052ee3773堆外内存释放代码:http://blog.csdn.net/z69183787/article/details/79316599堆外内存堆外内存是相对于堆内内存的一个概念。堆内内存是由JVM所管控的Java进程内存,我们平时在Java中创建的对象都处于堆内内存中,并且它们遵循JVM的内存管理机制,JVM会采用垃圾回收机制统...转载 2018-02-11 14:04:18 · 1837 阅读 · 0 评论 -
使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放
http://blog.csdn.net/aitangyong/article/details/39455229我之前的一篇博客:System.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放 文章末尾处:提到java NIO包是通过sun.misc.Cleaner和PhantomReference来实现堆外内存转载 2018-02-12 14:29:36 · 1693 阅读 · 0 评论 -
DirectByteBuffer内存申请与释放 && 可能会导致内存泄露的原因
DirectByteBuffer类是在Java Heap外分配内存,对堆外内存的申请主要是通过成员变量unsafe来操作,下面介绍构造方法 // Primary constructor // DirectByteBuffer(int cap) { // package-private super(-1, 0, cap, cap);...转载 2018-02-11 12:08:02 · 3458 阅读 · 0 评论 -
关于虚引用PhantomReference
https://segmentfault.com/q/1010000004491370在>3.2.3中有这么一句话“为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。”请问利用虚引用在对象被回收时收到一个系统通知要怎么实现呢?能提供下示例代码吗?import java.lang.ref.PhantomReferen转载 2018-02-09 10:45:45 · 1109 阅读 · 1 评论 -
Java内存溢出与栈溢出
http://m.blog.csdn.net/hu1991die/article/details/43052281一、背景知识1、JVM体系结构2、JVM运行时数据区3、JVM内存模型JVM运行时内存 = 共享内存区 + 线程内存区转载 2017-07-20 15:34:06 · 3909 阅读 · 2 评论 -
WeakReference与SoftReference
转自:http://flyneil.iteye.com/blog/1345177 WeakReference与SoftReference都可以用来保存对象的实例引用,这两个类与垃圾回收有关。WeakReference是弱引用,其中保存的对象实例可以被GC回收掉。这个类通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通常用于Debug、内存监视工具等程序中。因为这转载 2017-04-12 10:36:18 · 929 阅读 · 0 评论 -
WeakHashMap是如何清除不用的key的
先把问题说清楚:WeakHashMap是主要通过expungeStaleEntries这个函数的来实现移除其内部不用的条目从而达到的自动释放内存的目的的.基本上只要对WeakHashMap的内容进行访问就会调用这个函数,从而达到清除其内部不在为外部引用的条目。但是如果预先生成了WeakHashMap,而在GC以前又不曾访问该WeakHashMap,那不是就不能释放内存了吗?对应的两转载 2017-01-17 13:36:47 · 3087 阅读 · 0 评论 -
Java中的WeakHashMap实现分析
转:https://www.dexcoder.com/selfly/article/289在Java集合中有一种特殊的Map类型:WeakHashMap。 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHash原创 2017-01-17 12:22:14 · 1633 阅读 · 0 评论 -
Java WeakHashMap 源码解析
前面把基于特定数据结构的Map介绍完了,它们分别利用了相应数据结构的特点来实现特殊的目的,像HashMap利用哈希表的快速插入、查找实现O(1)的增删改查,TreeMap则利用了红黑树来保证key的有序性的同时,使得增删改查的时间复杂度为O(log(n))。今天要介绍的WeakHashMap并没有基于某种特殊的数据结构,它的主要目的是为了优化JVM,使JVM中的垃圾回收器(garbage co转载 2017-01-17 12:24:02 · 1059 阅读 · 0 评论 -
Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference
1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为: 强引用 > 软引用 > 弱引用 > 虚引用⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终转载 2017-01-17 11:47:31 · 943 阅读 · 0 评论 -
浅谈一下JAVA对象,对象引用以及对象赋值
浅谈一下JAVA对象,对象引用以及对象赋值 今天有班级同学问起JAVA对象的引用是什么。正好趁着这次机会,自己总结一下JAVA对象,对象引用以及对象赋值。自己总结了所看到的网上相关方面的不少帖子,整理汇总形成下面的文章。 Java对象及其引用 初学Java,总是会自觉或不自觉地把Java和C++相比较。在学习Java类与对象章节的时候,发现教科转载 2014-03-12 22:53:55 · 7658 阅读 · 1 评论 -
[转]Java 的强引用、弱引用、软引用、虚引用
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过...转载 2019-03-09 14:01:41 · 708 阅读 · 0 评论
分享