
jdk容器源码分析
幻想波普星
这个作者很懒,什么都没留下…
展开
-
Hashtable、Hashset傻傻分不清?
其实本来说不写这两个类了,但是跟一块心病似的。还是写了吧,把这些不太熟的犄角旮瘩都打扫一遍!Hashtablepublic class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable {Dictionar...原创 2019-10-22 14:21:28 · 168 阅读 · 0 评论 -
LinkedHashMap为什么是有序的?
简单介绍public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{ transient LinkedHashMap.Entry<K,V> head; transient LinkedHashMap.Entry&l...原创 2019-10-21 16:07:03 · 2894 阅读 · 0 评论 -
hashmap源码解析面试必备干货
概述本文基于jdk1.8,关于树的部分先简要介绍,大体跳过,后续回来补坑~hahsmap底层是由哈希桶组成的,何谓哈希桶?其实就是数组,每个数组元素我们称之为桶,桶一般是由链表组成,链表长度到8时,会转化为红黑树,以此来提升效率。hashmap中计算key的hash值时候,使用了扰动函数。hashmap计算元素下标方法是hash&(n-1),n即哈希桶的容量,因为哈希桶容量有限,这就...原创 2019-10-20 17:04:28 · 169 阅读 · 0 评论 -
LinkedList源码分析
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable实现了List接口,代表着可以实现精准控制,即所谓的按照index进行一系列操作。D...原创 2019-10-19 16:19:54 · 116 阅读 · 0 评论 -
ArrayList源码分析
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable实现了三个接口。RandomAccess即随机访问,这个接口没有实际意义,可以理解为实现了这个接口标志着该类具...原创 2019-10-18 15:22:34 · 80 阅读 · 0 评论 -
java是值传递还是引用传递
这个问题的存在由来已久,首先回忆下值传递和引用传递分别是什么。值传递说白了就是传递到函数的形参不会改变实参内容,值传递则会影响改变实参。java中好像有时候是值传递有时候是引用传递弄的人头晕,那么,分别来看下这两种情况吧public class User { private String name; // setter getter private vo...原创 2019-10-17 19:17:21 · 140 阅读 · 0 评论 -
BIO&NIO
BIO 阻塞IO首先要明确的一点是NIO中非阻塞的实现是基于Selector的,所以如果不采用Selector,只采用channel和buffer,还是存在阻塞。看一下BIO的Serverpublic class Server { public static void main(String[] args) throws IOException { ServerSoc...原创 2019-09-21 13:49:11 · 132 阅读 · 0 评论 -
NIO之三大组件
java1.4引入了NIO.标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作.NIO中的读操作是从channel到buffer,写操作是从buffer到channel标准IO中流总是单向的,channel则是双向的,数组总是从channel读到buffer,然后再从buffer取出。或者先写入buffer,再从buffer进入到cha...原创 2019-09-20 19:32:34 · 218 阅读 · 0 评论 -
IO中的设计模式
java的IO中主要有适配器和装饰器两种设计模式。简要说明下这两种设计模式,适配器,生活中就有这个东西嘛,现在很多手机取消了耳机孔,用一个适配器你就可以用type-C充放口听歌了。即,将一个接口适配到另一个接口。IO中有一个很常见的场景,把字符串转化为字节保存到文件中,用type-c口听歌,很像对吧,这里就用到了适配器模式。public class Adapter { public s...原创 2019-09-12 20:25:20 · 999 阅读 · 0 评论