Java/Android源码学习
文章平均质量分 87
tuke_tuke
这个作者很懒,什么都没留下…
展开
-
Java集合中HashSet的实现原理
1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值都是统一的一个private static原创 2016-08-27 10:36:11 · 1028 阅读 · 0 评论 -
Android之内存管理-内存监测-内存优化
推荐文章:Android进程与内存及内存泄漏Android之内存管理1.1 DalvikDalvik虚拟机是Android程序的虚拟机,是Android中Java程序的运行基础。其指令集基于寄存器架构,执行其特有的文件格式——dex字节码来完成对象生命周期管理、堆栈管理、线程管理、安全异常管理、垃圾回收等重要功能。Dalvik虚拟机的内存大体上可以分为 Java Object He原创 2016-08-25 20:12:51 · 1408 阅读 · 0 评论 -
Android PullToRefresh(下拉刷新)的使用详解
开源项地址:https://github.com/chrisbanes/Android-PullToRefresh在Android-PullToRefresh-master文件夹下,我们会看到还有三个文件夹:extras,library,sample。其中sample就是作者为我们提供的Demo,library是我们在使用Sample必须用到的jar。extras中是使用ListFragm原创 2016-08-16 21:02:54 · 1945 阅读 · 0 评论 -
Handler消息传递机制(二)Handler,Loop,Message,MessageQueue的工作原理
Loop,Message,MessageQueue概念理解:Message:Handler发送、接收和处理的消息对象Looper:每个线程只能拥有一个Looper.它的looper()方法负责循环读取MessageQueue中的消息并将读取到的消息交给发送该消息的handler进行处理。MessageQueue:消息队列,它采用先进先出的方式来管理Message。程序在创建Loop原创 2016-03-02 21:32:24 · 1771 阅读 · 0 评论 -
Java的Executor框架和线程池实现原理
一,Java的Executor框架1,Executor接口public interface Executor { void execute(Runnable command); }Executor接口是Executor框架中最基础的部分,定义了一个用于执行Runnable的execute方法,它没有实现类只有另一个重要的子接口ExecutorService2,Exe原创 2016-05-09 17:22:50 · 23500 阅读 · 4 评论 -
Universal-imageLoader缓存图片加载
一,先要配置ImageLoaderConfiguration这个类实现全局ImageLoader的实现情况ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( this) .memoryCacheExtraOptions(480, 800) // max width, max he原创 2016-05-21 11:01:20 · 6271 阅读 · 0 评论 -
Java数据库连接池实现原理
一般来说,Java应用程序访问数据库的过程是: ①装载数据库驱动程序; ②通过jdbc建立数据库连接; ③访问数据库,执行sql语句; ④断开数据库连接。public class DBConnection { private Connection con; //定义数据库连接类对象 private PreparedStatement pstm; pr原创 2016-05-29 16:33:02 · 32509 阅读 · 11 评论 -
Java中HashMap底层实现原理(JDK1.8)源码分析
这几天学习了HashMap的底层实现,但是发现好几个版本的,代码不一,而且看了Android包的HashMap和JDK中的HashMap的也不是一样,原来他们没有指定JDK版本,很多文章都是旧版本JDK1.6.JDK1.7的。现在我来分析一哈最新的JDK1.8的HashMap及性能优化。在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值原创 2016-06-05 11:13:44 · 147848 阅读 · 47 评论 -
Android的Handler,Looper源码剖析
之前了解android的消息处理机制,但是源码看的少,现在把Looper,Handler,Message这几个类的源码分析一哈android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类Looper源码:Looper的字面意原创 2016-06-05 19:27:03 · 1551 阅读 · 0 评论 -
Anroid-async-http封装网络请求框架源码分析
Android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单, 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果. 主要特点:处理异步Http请求,并通过匿名内部类处理回调结果,Http异步请求均位于非UI线程,不会阻塞UI操作,原创 2016-07-11 19:44:46 · 3861 阅读 · 0 评论 -
Android触摸事件源码分析:Activity->ViewGroup->View
Activity中当屏幕有touch事件时,首先调用Activity的dispatchTouchEvent方法 /** * Called to process touch screen events. You can override this to * intercept all touch screen events before they are dispatc原创 2016-08-14 21:41:07 · 1306 阅读 · 0 评论 -
Android中的AsyncTask异步加载图片
AsyncTask简介:AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读 AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常 成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决原创 2016-05-24 11:51:09 · 1851 阅读 · 0 评论