自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 LruCache和DiskLruCache的使用

LruCache是内存缓存,DiskLruCache对应的磁盘缓存。在学习Bitmap缓存优化的时候学习了这两种缓存方式,我觉得这种策略可以应用于Android的开发中(现在应该都是这样应用的吧),它不仅仅是Bitmap,它可以是商品,也可以是一组数据。现在就以Bitmap为案例,把我知道的关于Bitmap缓存的知识都记录下来。 LruCache在androidx.collection包下有这样一个类。先说说它的基本使用,首先创建LruCache的实例并分配给它内存的大小,然受重写siz...

2020-07-22 11:26:53 405

原创 Bitmap的优化及高效加载

Bitmap即位图。在Android中要处理要位图的加载显示并不容易,需要娴熟的管理的设备内存,否则很容易因为位图的加载不恰当占用了应用大量宝贵的内存空间,更严重的导致应用OOM。因此学习好如何高效的加载内存十分重要。幸好,现在有许多十分强大的图片加载框架,它们能够高效顺畅的加载位图,使用起来也非常方便,譬如Glide,picasso等。本文也暂时不去分析这些框架的源码(没复习到,也真的很复杂,不是三言两语能说明白的)。 Bitmap的加载优化呢,大概有三种: 1.采用图片质量...

2020-05-19 23:41:17 513

原创 Java Fail-fast

快速失败是当迭代器遍历集合的时候,如果集合的结构发生了改变(使用集合的添加或删除,迭代器的添加和删除不会报异常),迭代器就会抛出ConcurrentModificationException异常。for (int i = 0; i < 3; i++) { mStringList.add(String.valueOf(i)); Log.d(TAG, "add" + i); } ...

2020-05-17 18:31:36 128

原创 IntentService的使用及原理剖析

IntentService是什么 IntentService是一个服务类,它是Service的一个子类,同时因为它内部封装了HandlerThread,所以又是一个异步任务类。IntentService有哪些优点 1.IntentService是一个服务,优先级比较高,进行后台任务时,没那么容易被杀死。 2.IntentService内部封装了HandlerThread,不用手动创建进程,使用简单。 3.IntentService的后台任务执行完后自动销毁,不必手...

2020-05-13 22:26:58 436

原创 对AsyncTask的一次探索

AsyncTask AsyncTask是一个异步类,可以使用它开启一个任务去执行耗时操作,并实时将任务执行进度更新到UI线程中。使用起来非常方便。AsyncTask使用onPreExecute()在UI线程执行,在这个方法中,可以做一些任务开启前的准备工作,譬如初始化显示任务进度的ViewdoInBackground(Params... params)在子线程中执行,该方法在onPreExecute()方法执行后执行,在这个方法可以做一些耗时操作,并可以将执行的结果通过publis..

2020-05-10 19:36:53 226

翻译 TCP和UDP

IP是一个无连接协议,负责将数据从源转发到目的地,主要功能有:IP寻址、路由选择、分组及重组。IP提供主机间的逻辑通信,提供“尽力而为的服务”,将尽力而为地在主机之间传送数据段,不做任何承诺,不能保证段的交付与否,不能保证段交付的时间、不能保证段中数据的完整性。因此,IP服务被称为“不可靠”的服务。 传输层有两个协议:TCP和UDP TCP(传输...

2019-04-03 11:02:37 160

原创 Java多线程

java的多线程是java基础的一个重要的知识点,本人能力有限,而且语言表达能力也不太好,在此写下为了更好的巩固知识,以后复习也能够快速的理解。线程的概念:线程是系统调度和分派的基本单位。引入线程的目的:单线程进程调度时存在进程时空开销大、进程通信代价大、进程并发颗粒粗、不适合并行计算等问题。操作系统支持多线程进程,能够减少程序并发时所付出的时间和空间的开销,是的并...

2019-03-25 23:54:38 212

原创 记录List、ArrayList、LinkedList和Vector的使用和联系(java)

List是java.util下的一个接口。List,在java文档中译为序列,相当于数组,但是它与数组不同的地方在于List可以存储null,也就是说可以存储的数据类型的是Object。ArrayList,LinkedList和Vector是List的实现类,它们主要有两点不同之处:1.ArrayList和Vector是以数组的方式实现的,而LinkedList是以链表的方式实现的;...

2019-03-07 11:42:52 113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除