Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
这里重点介绍一下软引用和弱引用。
如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回...
文章
code_xzh
2014-11-02
908浏览量
[Java] 的四种引用,强弱软虚,用到的场景
版权声明:请尊重个人劳动成果,转载注明出处,谢谢!
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
1 . 强引用(StrongReference)
强引用是使用最普遍的引用。如果一个...
文章
ghost丶桃子
2016-05-26
2274浏览量
Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
这里重点介绍一下软引用和弱引用。
如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回...
文章
ctrip_xzh
2014-11-02
1010浏览量
关于JAVA弱引用
JAVA的变量引用强度由强到弱有四种:强引用、软引用、弱引用、虚引用。
1、强引用(Strong Reference)。即最常用的变量定义和引用,这种引用在引用链接释放前,内存是不会被回收的。
2、软引用(Soft Reference)。内存不够时,JVM向系统申请内存,直到系统内存不够时,内存被...
文章
填坑大人
2015-11-03
544浏览量
Java中强、软、弱、虚四种引用详解
强引用 强引用就是指在程序代码之中普遍存在的,指创建一个对象并把这个对象赋给一个引用变量,并没有像其它三种引用一样有一个就具体的类来描述。对于强引用对象,即使内存不足,JVM宁愿抛出OutOfMemoryError (OOM)错误也不会回收这种对象。
例如:
Object object =new...
文章
奈学教育技术分享
2020-09-03
68浏览量
【译】垃圾回收,引用类型和五种可达性-强、软、弱、虚、不可达
Java虚拟机有5个不同级别的对象的可达性。
●强可达(Strongly reachable)
如果一个对象可以被一些线程直接使用而不用通过其他引用对象(reference objects),那么它就是强可达。一个新创建的对象对创建它的线程来讲就是强可达的。
这是我们知道并且一直在使用的引用类...
文章
shy丶gril
2016-05-23
1349浏览量
Java 强引用和弱引用以及其它引用
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/qingfeng812/article/details/16972883
package CH02;
imp...
文章
聚优云惠
2013-11-26
334浏览量
深入java面向对象五:Java的内存管理
一、 Java对象的引用种类
Java内存管理包括内存分配和内存回收, 这个动作都是由JVM自动完成,所以过多的内存分配增加了内存的消耗,且垃圾回收线程的不断运行会给后台增加压力,降低系统的性能。
1.1 对象在内存中的状态
· 可达状态: 当一个对对象被创建后,有一个以上的引用变...
文章
无名公子
2014-09-17
1119浏览量
垃圾回收机制与引用类型
Java语言的一个重要特性是引入了自动的内存管理机制,这样一来,开发人员就不需要自己来管理应用中的内存了。C/C++开发人员需要通过malloc/free和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,因为这些方法使用不当很容易造成内存访问错误和内存泄露等严重...
文章
一叶飘舟
2012-09-07
1818浏览量
彻底理解引用在 Android 和 Java 中的工作原理
本文讲的是彻底理解引用在 Android 和 Java 中的工作原理,
几周前,我很荣幸地参加了在波兰举行的 Mobiconf ,移动开发者参加的最好的研讨会之一。我的朋友兼同事 Jorge Barroso 做了个名为“最好(良好)的做法”的演说 ,这让我在听后很有感触:
对于一个 Andr...
文章
玄学酱
2017-10-18
1154浏览量
深入探讨 java.lang.ref 包
简介: 本文主要探讨了 java.lang.ref 包的使用方法,以及源码解读。并就该包在不同 JVM 上的表现进行了比较与分析。通过阅读本文,读者可以加深对 java.lang.ref 的理解,从而在开发中更好地利用该包。
概述
Java.lang.ref 是 Java 类库中比较特殊的一个包,...
文章
rollenholt
2016-05-04
1318浏览量
Java垃圾收集学习笔记
版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781
(1)除了释放不再被引用的对象,垃圾收集器还要处理堆碎块。请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的空闲空间是足够的,但是堆中没有没有连续的空间放得下新对象。可能会导致虚...
文章
ghost丶桃子
2016-05-26
1212浏览量
JVM 垃圾回收揭秘附常见面试题解析
JVM 垃圾回收常见面试题
问题答案在文中都有提到
如何判断对象是否死亡(两种方法)。
简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。
如何判断一个常量是废弃常量
如何判断一个类是无用的类
垃圾收集有哪些算法,各自的特点?
HotSpot 为...
文章
开发者社区
2019-12-25
128浏览量
整理的部分Java和C#不同点
C#有统一的类型系统,所有的类型包括原始类型(int,bool,short,long等类型)都继承于Object类。
Java略不同,它的原始类型不是继承于Object,每个原始类型都有对应的包裹类(继承于Object),比如int的包裹类Integer
C#有无符号整数,uint、ulong...
文章
技术小甜
2017-11-08
842浏览量
强、软、弱、虚引用学习
Java中根据引用的内存敏感度和GC之间的关系把引用分成了四个级别:强、软、弱、虚
强引用
宁可OutOfMemory也不回收。看下面的代码:
// 用于占位
public class Holder {
private static final int MB = 1024 * 1024;
...
文章
机械键盘
2014-12-23
957浏览量
深入Java虚拟机读书笔记[8:9]
第八章 连接模型
1. 动态连接和解析
每个类或者接口都编译为独立的class文件,他们之间通过接口(Harbor)符号相互联系,或者与Java API class文件相联系。class文件把所有引用符号保存在常量池,每一个class文件有一个常量池,被装载的类或者接口有一份内部版本的运行时常量池...
文章
johnwong
2016-04-12
1291浏览量
Android内存泄漏检测工具:LeakCanary
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasphttps://blog.csdn.net/NoMasp/article/details/79582082
...
文章
nomasp
2018-03-16
1231浏览量
Java内存泄露的理解与解决
依赖于引用判断的内存管理机制
Java中对内存对象的访问,使用的是引用的方式。
在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。在Java程序中,这个引用变量本身既可以存放堆内存中,又可以放在代码栈的内存中(与基本数据类型相同)。...
文章
邴越
2016-05-05
1279浏览量
动手写缓存
目前市面上已经有很多开源的缓存框架,比如Redis、Memcached、Ehcache等,那为什么还要自己动手写缓存?本章将带领大家从0到1写一个简单的缓存框架,目的是让大家对缓存的类型、缓存的标准、缓存的实现以及原理方面有一个系统的了解,做到知其然,知其所以然。
缓存定义的规范
JSR是Java...
文章
技术小能手
2017-12-28
1631浏览量
JVM及遗传算法,转摘牛人牛文
看了此篇,俺才知堆和栈原来也可以这样相依相离。
而内存中的遗传算法,则可以让我们分清民主和专制的界限---是要"最好的"?还是"不要最差的"?
当我们不能清楚自己想要的时候,我们是否很清楚自己不要的?
http://simpleframework.net/blog/v/30070.html
htt...
文章
天飞
2016-05-16
1426浏览量
android 加载图片oom若干方案小结
本文根据网上提供的一些技术方案加上自己实际开发中遇到的情况小结。
众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视手机而定)。一般我们可以通过获取当前线程的可运行内存来判断,比如系统分给当前运行内存只有16M,而你的图片就有16M,这肯定会oo...
文章
code_xzh
2016-08-04
1063浏览量
WeakReference与SoftReference
SoftReference(软引用)、WeakReference(弱引用),这两个类是对heap中java对象的应用,通过这个两个类可以和gc做简单的交互。
WeakReference是弱引用,其中保存的对象实例可以被GC回收掉。这个类通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通...
文章
老朱教授
2017-10-01
851浏览量
Java虚拟机浅谈——垃圾收集器与内存分配策略
在C语言中,有些由内存需要程序员在代码中进行手动回收,但是在Java中,没有这样的声明式操作。有没有人有去想过,Java到底做了什么可以自动进行垃圾回收呢?Java中的垃圾回收,是一点都不需要程序员关心,万无一失的吗?
本文将从:Jvm中的垃圾收集器和内存分配策略。虚拟机中对已经死亡的对象都有...
文章
淘系技术
2020-10-12
1068浏览量
Android 内存泄漏总结
Android 内存泄漏总结
内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一...
文章
箫鉴哥
2016-01-19
56486浏览量