[转] HashMap实现原理及源码分析

转自 http://www.cnblogs.com/chengxiao/p/6059914.html 介绍 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。 目录 什么是哈希表 HashMap实现原理 »

Lie Lie

[转] 图解 Android 事件分发机制

转自:http://www.jianshu.com/p/e99b5e8bd67b 为什么转载这篇文章?因为它能让你很容易的把事件分发记在你的脑海,感觉自己写不出比这更好的文章了,推荐! 在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。 Android 事件分发流 关于Android 事件分发机制网上的博文很多,但是很多都是写个Demo然后贴一下输出的Log或者拿源码分析,然后一堆的注释和说明, »

Lie Lie

Android仿微信支付密码弹出层

开始 最近项目中使用到了支付密码功能,感觉这类界面应该是比较常用的,涉及支付密码的输入的一般都会用到吧,所以单独地把这部分抽取出来,有需要的朋友可以拿去用用。 预览 使用 这个弹出层是一个DialogFragment,逻辑都封装在其内部,使用起来很简单: Bundle bundle = new Bundle(); bundle.putString(PayFragment.EXTRA_CONTENT, "提现:¥ " + 100.00); PayFragment fragment = new »

Lie Lie

Dagger2实现更为规范化的MVP架构

开始 关于Dagger2的使用可以参考之前的一篇文章 我的Dagger2学习历程:从一头雾水到恍然大悟。最近在修改项目结构的是否发现之前的MVP结构并没有完全遵循MVP模式,也没有做到面向接口的编程,这里做出一点补充。 代码 MVP由Model、View、Presenter构成,则我们的契约类Contract则要为这三者定义好接口 LoginContract.java public interface LoginContract { interface View extends IView { /** * 登录成功 * * @param result */ void loginSuccess( »

我的Dagger2学习历程:从一头雾水到恍然大悟

前言 关于Dagger2的教程在网上已经有很多很多了,对于使用和原理都讲得比较明白,但是对于第一次接触的人们来说(比如我),难免会看得一头雾水,所以这里我就记录一下我学习Dagger2的过程,分享最快速的学习方法给大家。 介绍 Dagger2是一个依赖注入的框架,什么是依赖注入?简单的来说就是类中依赖的对象只要声明就可以使用了,它的创建由框架来管理。如下代码所示,application直接就可以拿来用了。 public class LoginActivity extends Activity{ @Inject Application application; } 开始 刚开始接触Dagger2的时候大量阅读了网上的教程,主要是一些概念性的东西, »