自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

聚精会神搞建设

一心一意谋发展

  • 博客(12)
  • 资源 (6)
  • 收藏
  • 关注

原创 Picasso源码分析(六):BitmapHunter与请求结果的处理

into方法流程回顾into方法首先检查了是否在主线程,控件是否为null,用户有没有设置uri或者资源id,是否调用了fit方法自适应压缩。接着根据into方法调用时间创建Request请求,并为该请求设置缓存用的key。接着判断是否要读内存缓存,可以读内存缓存并且命中的话就将缓存中的图片显示在控件然后返回,否则开启网络请求。网络请求的过程中暂时显示占位图。 网络请求的过程就是针对此次请求封装成

2016-06-22 16:30:48 1737 1

原创 Picasso源码分析(五):into方法追本溯源和责任链模式创建BitmapHunter

Picasso异步加载图片流程回顾首先通过with方法创建单例Picasso对象 public static Picasso with(Context context) { if (singleton == null) { synchronized (Picasso.class) { if (singleton == null) { sing

2016-06-21 16:58:14 4746 1

原创 java中异常处理finally和return语句的执行顺序

finally代码块的语句在return之前一定会得到执行如果try块中有return语句,finally代码块没有return语句,那么try块中的return语句在返回之前会先将要返回的值保存,之后执行finally代码块,最后将保存的返回值返回,finally代码块虽然对返回值进行修改也不影响返回值,因为要返回的值在执行finally代码块之前已经保存了,最终返回的是保存的旧值。如果try

2016-06-14 19:36:12 3927

原创 Picasso源码分析(四):不变模式、建造者模式和Request的预处理

Request的不变模式(Immutable Pattern)  不变模式可增强对象的强壮型,允许多个对象共享某一个对象,降低了对该对象进行并发访问时的同步化开销。如果需要修改一个不变对象的状态,那么就需要建立一个新的同类型对象,并在创建时将这个新的状态存储在新对象里。   不变模式只涉及到一个类。一个类的内部状态创建后,在整个生命周期都不会发生变化时,这样的类称作不变类。   不变模式的优点:

2016-06-14 17:06:55 2131

原创 Picasso源码分析(三):快照功能实现和HandlerThread的使用

HandlerThread原理和用法HandlerThread是一个Android系统提供的提供快速开发的工具类,功能为开启一个具有looper的线程,该线程的looper可以和handler绑定,也就是说创建handler的时候可以在handler构造函数传入handlerThread对象的looper,这样此handler的消息处理 方法handleMessage就会在handlerThread

2016-06-13 10:35:45 1424 1

原创 Picasso源码分析(二):默认的下载器、缓存、线程池和转换器

下载器当用户没有为Picasso指定下载器的时候Picasso会通过Utils.createDefaultDownloader(context)方法创建一个默认的下载器 static Downloader createDefaultDownloader(Context context) { try { Class.forName("com.squareup.okhttp.OkH

2016-06-12 22:45:55 4597

原创 Picasso源码分析(一):单例模式、建造者模式、面向接口编程

Picasso简单介绍Picasso使用建造者设计模式,使异步网络加载图片到控件这一复杂流程可以用一条方法链搞定。典型的Picasso加载图片的使用方式如下:Picasso.with(context).load(url).into(imageView); 传入上下文context构造获取Picasso然后异步加载图片链接获取图片最后显示在控件上,一气呵成 或者可以对加载到的图片进行尺寸压缩后再显示

2016-06-12 17:06:07 1925

原创 jdk源码分析之WeakHashMap

基本原理WeakHashMap特点是,当除了自身有对key的引用外,此key没有其他引用,那么WeakHashMap会在下次对WeakHashMap进行增删改查操作时及时丢弃该键值对,节约内存使用,此特性使得WeakHashMap非常适合构建缓存系统。 WeakHashMap是主要通过expungeStaleEntries函数的来实现移除其内部不用的entry从而达到的自动释放内存的目的。基本上只

2016-06-08 10:39:33 1573

原创 jdk源码分析之PriorityQueue

基本原理PriorityQueue(优先级队列)的数据结构是最小堆,采用数组作为底层数据结构。 不同于普通的遵循FIFO规则的队列,PriorityQueue每次都选出优先级最高的元素出队,优先队列里实际是维护最小堆,通过最小堆使得每次取出的元素总是优先级最高的。 /** * Priority queue represented as a balanced binary heap:

2016-06-07 16:36:44 794

原创 Volley源码分析【面向接口编程的典范】

基本原理Volley采用生产者消费者模型,生产者(Volley的使用者)通过调用add方法给请求队列添加请求,缓存调度器和网络调度器作为消费者从请求队列取出请求处理,根据不同情况决定走缓存还是走网络请求数据,最后切换线程,将请求的数据回调给UI线程。创建请求队列Volley通过静态工厂方法newRequestQueue生成一个请求队列RequestQueue public static Req

2016-06-03 16:28:08 4010

原创 jdk源码分析之LinkedHashMap

基本原理LinkedHashMap继承自HashMap,因此具有HashMap的所有特性。在HashMap的基础上,保持了key的插入顺序或者访问顺序。实现方法就是用双向循环链表将所有的entry链接起来,读取数据的时候直接读取此双向循环链表的数据即可。public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>

2016-06-02 11:11:06 847 1

原创 jdk源码分析之ConcurrentHashMap

基本原理Hashtable使用synchronized锁住整张Hash表,锁的粒度太大导致Hashtable性能低下。ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁

2016-06-01 22:30:22 3315

值得学习的MySQL行级锁、表级锁、页级锁详细介绍

值得学习的MySQL行级锁、表级锁、页级锁详细介绍

2019-03-13

为什么说B+树比B树更适合做文件索引

为什么说B+树比B树更适合做文件索引

2019-03-13

「Redis」Redis是单线程的,但Redis为什么这么快?

「Redis」Redis是单线程的,但Redis为什么这么快?

2019-03-13

如何成功运行Apache Mahout的Taste Webapp-Mahout推荐教程-Maven3.0.5-JDK1.6-Mahout0.5

教你成功运行mahout的taste webapp例子,网上的很多资料说的不清楚,或者版本冲突。正确的版本是jdk1.6 maven3.0.5 mahout0.5 。 摸索良久,亲测有效!

2016-11-23

安卓二维码生成与扫描完美解决方案

Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果 这篇文章写的不错,但是按照这篇文章使用二维码的话会出现竖屏扫描图像拉伸变长的问题(有一个地方计算错误),解决拉伸变长的问题后又会出现闪退的问题(传输大Bitmap对象导致闪退,改为Byte数组或者不传递Bitmap) 其他地方不动,即可完美移植二维码扫描功能

2016-03-08

10小时学会c语言,初学者入门必看。高效学习。

十小时学会c语言,初学者必看的入门读物Word文档

2011-04-04

空空如也

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

TA关注的人

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