非专业程序员

努力做专业的事!

图片缓存之Picasso源码分析

Picasso源码分析

前言 图片缓存系列之Picasso 正文 一. 概述 在开始之前, 我想先贴两张比较具有概括性的流程图 下面这张是对Picasso核心交互类的概括, 来自Android 三大图片缓存原理、特性对比 下面这张是Picasso下载一张图片的时候的执行流程图, 来自Picasso学习笔记 注: 笔者在看Picasso源码的时候, 发现其执行流程和上图有些不符,...

图片三级缓存之内存缓存和磁盘缓存

内存缓存用LruCache, 磁盘缓存用DiskLruCache

前言 本文主要分析Android中图片三级缓存中的前两级缓存, 即内存缓存(LruCache)和磁盘缓存(DiskLruCache), 分析其源码实现 正文 一. LruCache LruCache常用作内存缓存, 也就是第一级缓存 LruCache内部使用了一个LinkedHashMap实例, 所以在继续往下看之前, 建议先了解一下LinkedHashMap的特性...

Java集合框架之LinkedHashMap

LinkedHashMap源码讲解

前言 前面我们对Java集合框架有了一个基本的认识; 本文将主要讲解LinkedHashMap的实现原理和处理细节 LinkedHashMap继承于HashMap, 所以需要先对HashMap有一个基本的认识, 可以参见Java集合框架之HashMap 文章源码基于JDK8 Java集合框架系列博客: Java集合框架概述 ...

Java集合框架之Set

讲解Set实现类

前言 前面我们对Java集合框架有了一个基本的认识, 这里我们从几大接口入手, 逐步讲解其实现类; 下面要讲解的是Set的实现类, 即常用的HashSet, TreeSet和LinkedHashSet 文章源码基于JDK8 Java集合框架系列博客: Java集合框架概述 Java集合框架之List Java集合框架之H...

Java集合框架之List

讲解List的实现类

前言 前面我们对Java集合框架有了一个基本的认识, 这里我们从几大接口入手, 逐步讲解其实现类; 下面要讲解的是List的实现类, 即常用的ArrayList和LinkedList 文章源码基于JDK8 Java集合框架系列博客: Java集合框架概述 Java集合框架之List Java集合框架之HashMap ...

Java集合框架之HashMap

HashMap源码解析

前言 前面我们对Java集合框架有了一个基本的认识; 本文将主要讲解HashMap的实现原理和处理细节 文章源码基于JDK8 Java集合框架系列博客: Java集合框架概述 Java集合框架之List Java集合框架之HashMap Java集合框架之Set Java集合框架之...

Java集合框架概述

Java集合框架概述

前言 Java集合框架概述; 主要总述Java集合框架的设计理念, 组成和基本接口(及其区别等) Java集合框架系列博客: Java集合框架概述 Java集合框架之List Java集合框架之HashMap Java集合框架之Set Java集合框架之LinkedHashMap ...

MarkDown中使用数学公式

MarkDown中优雅的使用数学公式

前言 如何在MarkDown中使用数学公式 正文 在MarkDown文章中插入下面代码(MathJax引擎) <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script> 之...

高质量代码

浅谈对高质量代码的一些细节理解和注意事项总结

前言 本文不会详细去讲解代码规范等东西, 只是浅谈对高质量代码的一些细节理解和注意事项总结 «剑指Offer»第三章要点总结 正文 一. 什么叫高质量代码 1.1 规范性 从三个方面考虑: 书写, 布局, 命名 1.1-1 清晰的书写 能够辨识, 一般而言, 面试代码都比较短, 所以一般时间充足 1.1-2 清晰的布局 代码缩进, 空格等...

Detail

记录一些有助于提高代码性能和平时一些难以想到的细节处理

前言 本文记录一些有助于提高代码性能和平时一些难以想到的细节处理 正文 一. 边界值 1.1 基本类型的范围限制 一般而言, 看到基本类型, 特别是返回值或者涉及到计算的, 都应该考虑基本类型的范围限制 比如实现库函数: double Pow(double base, double exp)时, 需要考虑大数问题(如果要求是任意大的数字, 则需要使用特殊的数...