
java
duo_shine
这个作者很懒,什么都没留下…
展开
-
final性能与设计
前言:小知识点 出自《on java 8》-读后感前期绑定将一个方法的调用和主体关联起来称为绑定,若绑定发生在程序运行前,则为前期绑定,此工作交由编译期和链接器完成,例如在 C 语言中就只有前期绑定这一种方法调用。后期绑定后期绑定也称为动态绑定或运行时绑定,意味着在程序运行时根据对象的类型进行绑定,在运行时需要判断对象的类型,这种机制称为方法调用机制,java中除了static方法和fi...原创 2019-11-08 14:45:17 · 251 阅读 · 0 评论 -
过时引用
什么是过时引用对象的引用被栈维护,且永远不会解除,这个对象将排除在垃圾回收之外,且该对象引用的其他对象亦是如此什么是内存泄露分配内存后无法释放内存并且有过时的引用,就会发生内存泄露我们为什么要避免内存泄露当维护对象的过期引用时会出现内存泄露由于内存占用的增加,性能会下降,极端情况下会导致磁盘分页,甚至内存溢出如何解决对象保留问题一旦对象的引用过期,将他们设置为null,设置为n...原创 2019-08-22 18:27:10 · 233 阅读 · 0 评论 -
java集合系列七:HashMap源码解析
介绍哈希表实现,实现Map接口(这意味着以键/值对的形式存储数据)键和值可以是任何类型,包括null无序非线程安全的初始默认容量16负载因子默认0.75具有fail-fast机制扩容为原容量2倍继承关系 继承类介绍AbstractMap:继承AbstractMap,它实现了Map接口,提供了Map接口的基本实现Map:Map类集合的顶层接口,Map中存储的内容是键值对(...原创 2019-06-17 23:25:35 · 316 阅读 · 0 评论 -
java集合系列六:Map
map类集合的顶层接口,将键映射到值的对象!简单关系图:SortedMap按升序维护其条目根据键的自然顺序排序,或根据创建Comparator时提供的条目排序的SortedMap。Hashtable实现Map接口(这意味着以键/值对的形式存储数据)哈希表实现不支持null值或null键Hashtable是同步的无序的具有fail-fast机制默认初始容量11默认...原创 2019-06-17 23:13:46 · 212 阅读 · 0 评论 -
java集合系列五:LinkedList源码解析
介绍使用双向链表实现,由节点组成的数据结构LinkedList没有初始容量允许存储null值不是线程安全的可以通过迭代器遍历,具有fail-fast机制增删快继承关系 继承类介绍AbstractSequentialList:继承自AbstractList,重写了增删改查的方法,通过listIterator实现,这里可以不关注,毕竟LinkedList重写了这些方法,看起来它...原创 2019-06-17 23:10:48 · 199 阅读 · 0 评论 -
java集合系列四:Vector源码解析
介绍使用动态数组实现默认初始容量10默认扩容为原容量2倍具有fail-fast机制是线程安全的继承关系 继承类介绍和ArrayList的继承关系是一致的,就不重复了,没看过ArrayList的可以去看下变量解析(所有代码都不是完整的源码,而是精简过后的源码!结合源码食用更佳) //可扩容的动态数组 protected Object[] elementData;...原创 2019-06-17 23:06:19 · 163 阅读 · 0 评论 -
java集合系列三:ArrayList源码解析
接着Collection简单了解之后,开始学习ArrayList,这个集合在工作中比较常用,理解它更便于我们写出更优秀的代码介绍ArrayList是通过动态数组实现的允许存储Null值,这个所有通用的实现都可以存null值ArrayList是线程不安全的 毕竟很多情况下都不是多线程操作,锁会增加性能损耗,且不必要的同步可能导致死锁,需要同步集合可以参考java.util.concurre...原创 2019-06-17 23:01:53 · 193 阅读 · 0 评论 -
java集合系列二:Collection
Collection的继承关系如下:Collection集合层次的根接口,对集合一些常用方法的高度抽象,此接口通常用于需要最大通用性的情况下实现,但是JDK并没有提供此接口的任何直接实现,它提供了更具体的子接口如Set和List实现!Collection接口是list和set的顶级接口,其抽象了一些常用的公共方法,实现了Iterable接口,实现该接口以保证子类可以获取集合中元素的迭代器...原创 2019-06-17 22:59:38 · 178 阅读 · 0 评论 -
java集合系列一:前传
源码来自:JDK:jdk1.8.0_65关于阅读顺序理论上不要求按照任何顺序来阅读,但按照系列一.二…阅读有很多好处,比如Set依赖于Map实现,先看Map更容易理解Set关于源码所有文章的源码都不是完整的源码,而是精简过后的源码,减少篇幅 让理解很简单关于源码解析套路所有源码解析的流程基本都是一致的,从成员变量->增删改查的方法->增删改查用到的核心方法->以及扩...原创 2019-06-17 22:42:25 · 226 阅读 · 0 评论 -
java集合系列十三:LinkedHashSet源码解析
阅读本文你应该学习HashMap LinkedHashMap HashSet介绍继承HashSet类,通过LinkedHashMap来实现元素插入有序有序的非线程安全的具有fail-fast机制继承关系 继承类介绍HashSet:继承HashSet,通过HashSet的构造函数使用LinkedHashMap来实现元素按照插入顺序迭代Set:不包含重复元素的集合的顶层接口...原创 2019-06-18 22:00:35 · 207 阅读 · 0 评论 -
java集合系列十二:TreeSet源码解析
阅读本文前你应该先学习TreeMap介绍基础TreeMap实现元素按自然顺序排列或按指定的Comparator排序非线程安全具有fail-fast机制有序的(非索引序,默认是元素的自然排序,如A.B.C.D,或按用户指定的Comparator排序)继承关系 继承类介绍AbstractSet:该类提供了Set接口的基本实现,以减少实现该类所需要的工作NavigableSet:...原创 2019-06-18 21:48:20 · 287 阅读 · 0 评论 -
java集合系列十一:HashSet源码解析
你应该先学习HashMap介绍不能包含重复元素无序的底层使用HashMap允许存储null值不是线程安全的具有fail-fast机制继承关系 继承类介绍AbstractSet:该类提供了Set接口的基本实现,以减少实现该类所需要的工作Set:不包含重复元素的集合的顶层接口Cloneable:可被克隆Serializable:可被序列化源码解析 变量解析 构造函数...原创 2019-06-18 21:45:31 · 528 阅读 · 0 评论 -
java集合系列十:LinkedHashMap源码解析
你应该先看HashMap介绍扩展HashMap类并实现了Map接口哈希表+链表实现有序的键和值可以是任何类型,包括null非线程安全的具有fail-fast机制继承关系 继承类介绍继承自HashMap类并实现了Map接口变量解析(所有代码都不是完整的源码,而是精简过后的源码!结合源码食用更佳)由于其继承自HashMap,所以HashMap的一些参数对于LinkedHas...原创 2019-06-18 21:41:00 · 297 阅读 · 0 评论 -
java集合系列九:TreeMap源码解析
前提:阅读本文最好对红黑树有基本的了解介绍扩展AbstractMap类并实现NavigatebleMap接口访问和检索时间相当短,这使得TreeMap成为存储需要快速找到的大量排序信息的绝佳选择树实现适用于按自然顺序或自定义顺序遍历键(key)不允许键为Null非线程安全具有fail-fast机制继承关系 继承类介绍AbstractMap:继承AbstractMap,它实...原创 2019-06-18 21:37:51 · 230 阅读 · 0 评论 -
java集合系列八:HashTable源码解析
介绍实现Map接口(这意味着以键/值对的形式存储数据)哈希表实现不支持null值或null键Hashtable是同步的无序的具有fail-fast机制默认初始容量11(尽量维持奇数)默认加载因子.75f继承关系 继承类介绍Dictionary:虽然HashTable继承自Dictionary,但是此类已过时Map:实现Map接口(这意味着以键/值对的形式存储数据)变量解...原创 2019-06-18 21:34:39 · 220 阅读 · 0 评论 -
interrupt能停止线程吗?
答案是不确定,得看情况,看这段测试代码/** * Created by chen on 2018 */public class MyThread extends Thread { private static final String TAG = "duo_shine"; @Override public void run() { for (int...原创 2018-09-05 14:08:47 · 2774 阅读 · 1 评论