
---【java基础分析】
文章平均质量分 87
Achillisjack
这个作者很懒,什么都没留下…
展开
-
android 引用分析
1, 概念Java把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用; 这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。Java中的引用,类似于C++的指针。通过引用,可以对堆中的对象进行操作。在某个函数中,当创建了一个对象,该对象被分配在堆中,通过这原创 2017-01-14 22:19:34 · 482 阅读 · 0 评论 -
PriorityQueue源码分析
1, 概念PriorityQueue是优先队列,作用是保证每次取出的元素都是队列中权值最小的,具体是通过完全二叉树实现的最小堆(任一位置的值都不大于其左右孩子的值)完成的。重要变量如下,private static final long serialVersionUID = -7720805057305804111L; // 版本系列号private static final int DEF原创 2017-01-14 22:15:40 · 450 阅读 · 0 评论 -
Stack源码分析
1, Stack1, 概念Stack是栈,进栈时的元素都放在栈尾,出来的顺序也是从尾部先出来,所以是后进先出。定义如下,public class Stack extends Vector {Stack继承了Vector,因此Vector的所有public方法它都可以使用。Stack只有4个特有的方法.2, pushPush将一个元素放在栈尾。public E pus原创 2017-01-14 22:09:53 · 483 阅读 · 0 评论 -
Vector源码分析
1, 概念Vector是矢量队列,定义如下,public class Vector extends AbstractList implements List, RandomAccess, Cloneable, Serializable {Vector继承了AbstractList,实现了List接口,所以它是一个队列,支持相关的添加,删除,修改和遍历等功能。Vect原创 2017-01-14 22:01:45 · 479 阅读 · 0 评论 -
LruCache源码分析
1, 概念Lru的全称是Least Recently Used,近期最少使用的; Cache是缓存的意思。LruCache 的实现原理:把近期最少使用的数据从缓存中移除,保留使用最频繁的数据。LruCache 主要是利用LinkedHashMap这一数据结构来实现的。LruCache在android系统中应用广泛。本文分析的LruCache路径:frameworks/base/co原创 2017-01-14 21:54:52 · 525 阅读 · 0 评论 -
HashMap和几种数据结构的比较
1, HashSetHashSet是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成,transient HashMap> backingMap; // //存储元素的实体数组说白了HashSet只是HashMap表中value值为Ha原创 2017-01-14 21:49:52 · 2877 阅读 · 0 评论 -
HashMap源码分析
1, 概念HashMap就像是一个键值对,根据对应的键就可以获取相对应的值。从图中可以看出, HashMap的结构比较简单Cloneable和Serializable就不多论述了。Map接口有一个内部接口,方法如下,并且AbstractMap实现了Map.Entry接口和部分方法。2, HashMapHashMap基于哈希表的 Map原创 2017-01-14 21:45:42 · 406 阅读 · 0 评论 -
LinkedList源码分析
1, 比较LinkedList和ArrayList最本质的区别:LinkedList存贮的是一个双向链表,而ArrayList里面存贮的是数组。所以在一般情况下,1,对于随机访问, ArrayList性能要高2,对于增加删除操作, LinkedList性能要高3,对于查找等操作,两者性能相差无几。杂七杂八的接口太多,直接按照方法来论述。2, Linked原创 2017-01-14 21:32:09 · 364 阅读 · 0 评论 -
ArrayList源码分析
1, 结构图ArrayList 是android中很常见的一种数据结构,经常用,现在就来分析一下源码吧,结构图如下,其继承结构从上往下论述。1.1, Iterable Iterator这两个都是接口,实现他们的方法就可以对集合进行遍历public interface Iterable { Iterator iterator();}publ原创 2017-01-14 21:23:20 · 500 阅读 · 0 评论