kotlin中使用软引用
一、Java方式实现
var str = String("asdf")
val strSoftRef = SoftReference<String>(str)
str =
二、kotlin委托实现
委托属性,虽然常用by lazy,没看到别人的文章还想没想到这东西。
看lazy大致可以了解委托的实现方式,结合一些文章差不多可以写成这样
fun <T> weak(initializer: () -> T) = Weak(initializer.invoke())class Weak<T>(r: T) {private var reference: WeakReference<T?> = WeakReference(r)operator fun getValue(thisRef: Any?, property: KProperty<*>): T? = reference.get()operator fun setValue(thisRef: Any?, property: KProperty<*>, value: T?) {this.reference = WeakReference(value)}
}
可通过委托来实现
var str by weak { "str" }
软引用可以采用同样的写法。但是对于虚引用来说,虚引用一般配合引用队列一起使用,委托只能处理单一属性,所以就不用委托了。
kotlin中使用软引用相关推荐
- Android中使用软引用和弱引用避免OOM的方法
个人总结如下: 4种类型的引用 由高到低依次为:强引用>软引用>弱引用>虚引用 (1).强引用 如:Object object=new Object(),object就是一个强引用了 ...
- android 软引用intent对象,Android中的软引用(SoftRefrerence)和弱引用(WeakReference)
在Android开发中,基本上很少有用到软引用或弱引用,这两个东东若用的很好,对自己开发的代码质量的提高有很大的帮助.若用的不好,会坑了自己.所以,在还没有真正的去了解它们之前,还是慎用比较好. 下面 ...
- java 软引用_Java中弱引用和软引用的区别以及虚引用和强引用介绍
知道弱引用和软引用的概念与如何使用它们是两码事,引用类在垃圾回收工作的过程中有重要作用.我们都知道垃圾回收器会回收符合回收条件的对象的内存,但并不是所有的程序员都知道回收条件取决于指向该对象的引用类型 ...
- Java内存管理之软引用(Soft Reference)
软引用(Soft Reference)的主要特点是具有较强的引用功能.只有当内存不够的时候才回收这类内存,因此在内存足够的时候,他们通常不被回收.另外,这些引用对象还能保证在Java 抛出OutO ...
- Java 如何有效地避免OOM:善于利用软引用和弱引用
Java 如何有效地避免OOM:善于利用软引用和弱引用想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用 ...
- java弱引用怎么手动释放,Java 如何有效地避免OOM:善于利用软引用和弱引用
前言 想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题. 一.了解 ...
- [Android] Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. 如 ...
- 软引用、弱引用、 java
为什么80%的码农都做不了架构师?>>> Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用 ...
- Android使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. 如果 ...
最新文章
- linux怎么添加ubuntu源,ubuntu/linuxmint如何添加和删除PPA源
- Codeforces 1408 D. Searchlights(优化DP、思维)
- 东北能源大数据中心正式成立,一期将建设2.4万平方米数据中心
- hdu 5418(状态压缩dp+Floyd)
- STM32F103:二.(1)点亮LED
- 10年老分析师最终抛弃Excel,它不是最好的数据分析工具
- Ubuntu18.04安装wireshark3.0.6(版本可自己选)
- SSM SpringBoot vue物流配送人员管理系统
- 现代软件工程_团队项目_阿尔法阶段_第二次会议记录_2017.11.13
- jeesit1.27(3)-id生成策略
- 计算机控制教师端,摆脱学校机房教师端控制的方法汇总
- php 图片木马,php图片木马实现原理
- 【JZOJ100208】【20190705】传说之下
- 2012年上半年信息系统项目管理师 上午试题和参考答案及解析
- 在手机安装 Kali Linux
- python 培训基础
- 7-3 最长公共前后缀
- 收藏:信息安全相关的认证有哪些?有没有必要考?
- 微信小程序实现音乐播放器(5)
- JEESNS V1.2.0-RC3 发布,Java 开源 SNS 社区系统