- 浏览: 436759 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (188)
- 架构 (28)
- 数据库 (8)
- WEB开发 (30)
- 项目管理 (22)
- 敏捷开发 (11)
- 测试 (5)
- JAVA (30)
- 其它 (2)
- SPRING (13)
- 改BUG (4)
- 读书 (2)
- 小工具 (3)
- 杂文 (0)
- XQuery (1)
- JAVA虚拟机 (1)
- maven (8)
- weblogic (4)
- GIT (6)
- LINUX (9)
- JENKINS (1)
- NEXUS (0)
- webservice (3)
- TOMCAT (4)
- JBOSS (1)
- 管理 (1)
- STRUTS (3)
- ehcache (1)
- android (4)
- apache (3)
- NGINX (6)
- 产品经理 (2)
- HIBERNATE (2)
- JPA (1)
- freemarker (4)
- SPRING MVC (4)
- JQUERY (7)
- oracle (1)
- SSO (4)
- 移动开发 (2)
- IntelliJ IDEA (2)
- 草稿 (0)
- quartz (1)
- xpath (1)
- selenium (2)
- swing (4)
- JAVA 线程 (3)
- proguard (1)
- 大数据 (3)
- Flume (2)
- scala (1)
- json (1)
- dubbo (1)
- kettle (1)
- FastDFS (1)
- memcached (1)
- 物联网 (4)
- mysql (1)
最新评论
-
hefengjun1:
还有屌丝啊
团队需要的6种人 -
z390174504:
非常好啊......
maven中把依赖的JAR包一起打包 -
lq675964355:
为什么我执行(生成的不以-jar-with-depend ...
maven中把依赖的JAR包一起打包 -
phoenix5870:
怒赞一个!!!很棒!
maven中把依赖的JAR包一起打包 -
string2020:
关键是,我想mvn package就打包好,请问,怎么做
maven中把依赖的JAR包一起打包
什么是JAVA弱引用
简单来讲就是不保证不被垃圾回收器回收的引用地址。所以这个还是和垃圾回收器有关,那什么样的地址会被垃圾回收器回收呢?在堆中没有强引用链关联的内存地址将被垃圾回收器回收,回收之前将调用finalize()方法。
那么String s = "abc",就可以称之为强引用,等s = null。垃圾回收器就会在某个时刻自动将"abc"占用的内存回收掉。
而弱引用(WeakReference)其生命周期是比较短暂,尽管在那个时刻此地址还关联到一个变量地址,但是垃圾回器依然会执行清理命令,回收地址。
在JDK中用的比较多的有WeakHashMap,
弱引用最适宜的地方有:占用大量内存,但通过垃圾回收功能回收以后很容易创建。比如近期项目中session生命周期内的一个起缓存用的变量,此变量是记录关联到当前用户的一些汇率信息,因为一次加载比较多,而且取值频繁,所以用了WeakHashMap。一来如果用户一段时间不触发应用的话,内存自动会被清理,二来取值也方便,就是从数据库中直接取出再放入HashMap中。
最后附上一篇写的不错的文章,文中还涉及到了软引用和虚引用及一些代码案例。
http://www.233.com/Java/jichu/20070320/131115654.html
最后再加上短弱引用和长弱引用
Short
垃圾回收器回收对象后,短弱引用的目标自动变为NULL。弱引用本身是托管对象,和任何其它托管对象一样需要经过垃圾回收。短弱引用是WeakReference对象默认的构造函数。
Long
调用对象的finalize方法后,会保留长弱引用。这样,你就可以重新创造该对象,但该对象仍处理不可预知的状态。要使用长弱引用,要在WeakReference构造函数中指定true
如果对象的类型没有finalize方法,则自动应用弱引用功能。
发表评论
-
Java的clone():深复制与浅复制
2018-09-05 17:27 377Java中要想自定义类的 ... -
java http java.security.ProviderException: java.security.KeyException
2016-07-12 18:47 1440Google Bait This post isn't a ... -
JAVA clone 复制 inputstream
2016-05-20 15:47 1640ByteArrayOutputStream baos = n ... -
Java总结篇系列:Java多线程
2016-05-17 12:54 467多线程作为Java中很重 ... -
运用 BoxLayout 进行 Swing 控件布局
2016-05-03 12:30 363引言 在用户使用 Java Swing 进行用户界面开发过 ... -
SWING实现像QQ一样,在右下角弹出提示框
2016-05-01 11:33 386像QQ一样,在右下角弹出提示框,重点就是提示窗口的屏幕定位。 ... -
jar命令的用法详解
2016-04-28 12:25 450[转:http://www.jb51.net/a ... -
解读JAVA 的ClassLoader
2016-02-15 10:52 563[转:http://www.iteye.com/top ... -
百万级访问网站前期的技术准备
2016-01-28 14:49 439作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的 ... -
JAVA,导出CSV,设最大行数限制,使用winzipaes压缩成带密码的zip文件
2015-05-03 11:27 2544[转:http://blog.csdn.net/lian_z ... -
JAVA SWING 漂亮的框架
2015-04-21 20:10 852http://www.iteye.com/problems ... -
struts2采用convention-plugin实现零配置
2015-01-28 14:38 607转[http://javeye.iteye.com/blog ... -
显示CLASS源于哪个JAR包
2015-01-26 15:03 718在编程的时候如果在工程中无意中导入多个同样的jar文件,只是 ... -
Servlet 3.0 新特性详解
2014-11-25 10:47 644转【http://www.ibm.com/devel ... -
JAVA获取计算机CPU、硬盘、主板、网络等信息
2014-11-01 22:06 1510l转[http://www.cnblogs.com/jife ... -
java读取文件和写入文件的方式
2014-09-13 12:28 621[转:http://jaczhao.iteye.com/bl ... -
java 实现调用链接并获取返回值
2013-10-22 16:10 0URL u = null; HttpURLConnec ... -
Eclipse中启动JBoss 5.1 报Deployment "AttachmentStore" 错误
2013-10-15 14:19 1716今天在Eclipse中启动JBoss 5.1时遇到这样的一个 ... -
java调用OPENSSL生成双向SSL的WEB-SERVICE
2013-06-25 21:34 5767上一篇提到在NGINX中配置了双向SSL的验证, 签名信息 ... -
JAVA对称加密算法
2013-05-28 16:02 867[转:http://liulang203.iteye.com ...
相关推荐
Java 弱引用 Java 弱引用是一种特殊类型的引用,它允许垃圾回收器在某些情况下回收对象,而不是像强引用那样坚持对象的存在。弱引用是 Java.lang.ref.WeakReference 类的实例,它们提供了一种方式来引用对象,而不...
"JAVA 弱引用详解" JAVA 弱引用是JAVA语言中的一种特殊的引用类型,它使用WeakReference类来实现。弱引用是一种非必需对象的描述,它比软引用更弱。在发生GC时,只要发现弱引用,不管系统堆空间是否足够,都会将...
Java 弱引用(WeakReference)的理解与使用 Java 中的弱引用(WeakReference)是一种特殊的引用类型,它可以帮助我们更好地管理内存和避免内存泄漏。在 Java 中,当一个对象被创建时,它被放在堆(Heap)中。当垃圾...
Java中的弱引用是一种特殊的引用类型,它在内存管理中扮演着重要的角色,特别是在避免内存泄漏和优化资源使用方面。本文将从三个方面详细解释弱引用:What(定义)、Why(使用原因)和How(使用方法)。 一、What...
Java弱引用实现源码jack-编译器 效果 演示1: class Main { function void main () { String s; Output. printString ( " Hello, world! " ); Output. println (); Output. printString ( " What's your name? " ); ...
《Java 理论与实践: 用弱引用堵住内存泄漏》一文也指出了使用全局的Map作为缓存容器时发生的内存泄露问题,介绍了如何使用hprof工具来找出内存泄露,并分析了如何使用弱引用来防止内存泄露,还分析了
弱引用实现源码 Chromium_doc_zh Chromium中文文档 for 翻译之加强对android webview理解,同时作为架构设计的学习。 还未完全完成,不断更新ing,欢迎star gitbook地址: 适合阅读,可以导出pdf github地址: 翻译...
弱引用实现源码 程序员修炼秘籍(未完) 一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数据结构、算法、数据库、操作系统、计算机网络等多方面。 博文: 目前先暂列目录,内容在逐渐...
强引用、弱引用、软引用和虚引用是四种不同的引用强度,它们在垃圾回收机制中扮演着不同的角色。了解这些引用类型对于优化内存使用、防止内存泄漏以及合理地控制对象生命周期至关重要。 1. **强引用(Strong ...
弱引用实现源码 数据结构与算法学习之路 下面的算法都打包在一个应用当中,你只需要下载安装即可,里面有算法的介绍,时间复杂度,空间复杂度,代码示例 二叉树的遍历 二叉排序树 红黑树 AVL树 图的邻接表存储构成图...
从JDK 1.2版本开始,Java引入了四种不同级别的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些引用类型提供了灵活的内存管理策略,允许...
在Java中,为了更好地管理对象的生命周期,从JDK 1.2开始引入了四种不同级别的引用类型:强引用、软引用、弱引用和虚引用。每种引用类型都有其特定的应用场景,通过灵活运用这些引用类型,开发者可以在内存管理和...
### Java中的软引用、弱引用和虚引用详解 #### 一、引言 在Java开发过程中,特别是Android应用开发中,经常会遇到一个普遍的问题——内存溢出(OutOfMemory Error,简称OOM)。这个问题往往与如何有效地管理内存...
然而,为了更好地控制内存,Java提供了不同类型的引用:强引用、弱引用、软引用和虚引用。这些引用类型允许程序员在特定场景下干预垃圾收集过程,以达到更精细的内存管理。 1. **强引用(Strong Reference)** - *...
在这个过程中,软引用(Soft Reference)和弱引用(Weak Reference)是两种非常重要的工具,它们可以帮助我们避免内存泄漏,提高应用的内存效率。下面我们将深入探讨这两种引用类型及其在Android中的应用。 首先,...
Java中的弱引用编程开发技术是Java内存管理的一个重要概念,对于优化内存使用和防止内存泄漏具有关键作用。本文将深入探讨这一主题,帮助你在这十分钟内建立起对弱引用的理解。 首先,我们需要知道Java的内存区域...
为了更好地理解和控制对象的生命周期,Java提供了四种不同类型的引用:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)以及虚引用(Phantom Reference)。每种引用都有其特定的...
本月,负责保障应用程序健康的工程师 Brian Goetz 探讨了无意识的对象保留的常见原因,并展示了如何用弱引用堵住泄漏。 要让垃圾收集(GC)回收程序不再使用的对象,对象的逻辑 生命周期(应用程序使用它的时间...
从JDK 1.2版本开始,Java引入了一种更为精细的引用类型管理机制,通过四种不同的引用类型:强引用、软引用、弱引用和虚引用,让开发者能够更加灵活地控制对象的生命周期。这种机制不仅提升了Java应用程序对内存使用...
Java 中强引用、软引用、弱引用概念解析 Java 中强引用、软引用、弱引用是 Java 语言中三种不同的引用类型,每种引用类型都有其特点和应用场景,以下是对这三种引用类型的详细解释: 强引用 强引用是使用最普遍的...