摘要: LinkedHashMap使用的也较为频繁,它基于HashMap,用于HashMap的特点,又增加了双链表的结构,从而保证了顺序性,本文主要从源码的角度分析其如何保证顺序性,accessOrder的解释,以及常用方法的阐释 阅读全文
posted @ 2019-07-13 15:46 工匠初心 阅读(21348) 评论(5) 推荐(10) 编辑
摘要: 本文在上一章基本概念和底层结构的基础上,从源码的角度讲解了扩容机制以及存取原理,主要分析了put方法和get方法,put方法的核心为hash(),putVal(),resize(),get方法的核心为getNode() 阅读全文
posted @ 2019-07-08 10:29 工匠初心 阅读(17440) 评论(5) 推荐(3) 编辑
摘要: 本文主要讲解了HashMap中的一些主要概念,同时对其底层数据结构从源码的角度进行了分析,table是一个数据和链表的复合结构,size记录了key-value对的数量,capacity为HashMap的容量,其容量规则为2的幂次,loadFactor为装载因此,衡量满的程度,而threshold为临界值,当超出临界值时就会扩容。 阅读全文
posted @ 2019-07-06 15:47 工匠初心 阅读(8226) 评论(4) 推荐(3) 编辑
摘要: 本文对List集合进行了总结,包括类结构图,List是一个接口,继承了Collection,同时Collection继承了Iterable,表明List的实现类都是可用迭代遍历的,ArrayList和Vector对比分析,ArrayList和LinkedList的对比分析 阅读全文
posted @ 2019-06-30 11:16 工匠初心 阅读(2767) 评论(0) 推荐(0) 编辑
摘要: 本文基于java8从定义一个LinkList入手,逐步展开,从源码角度分析LinkedList双向链表的结构是如何构建的,同时针对其常用方法进行分析,包括get,add,remove以及常用的遍历方法,并简单的说明了它的插入、删除操作为何相对高效,而取值操作性能相对较低 阅读全文
posted @ 2019-06-29 17:25 工匠初心 阅读(52795) 评论(2) 推荐(3) 编辑
摘要: 本文续接上一章ArrayList原理及使用,对ArrayList中的常用方法subList进行了剖析,从源码的角度对通过subList方法得到的集合和原集合有何关系,有何不同点,从而避免工作中遇到各种坑 阅读全文
posted @ 2019-06-29 08:29 工匠初心 阅读(2515) 评论(0) 推荐(0) 编辑
摘要: 本文主要讲解了ArrayList原理,从底层数组着手,讲解了ArrayList定义时到底发生了什么,再添加元素时,扩容规则如何,删除元素时,数组的元素的移动方式以及一些常用方法的用途 阅读全文
posted @ 2019-06-26 15:10 工匠初心 阅读(59812) 评论(8) 推荐(12) 编辑
摘要: static是java中很常用的一个关键字,使用场景也很多,本文主要介绍了它的五种用法,static变量,static方法,static代码块,static内部类,static包内导入,在一定环境下使用,可以提高程序的运行性能,优化程序的结构 阅读全文
posted @ 2019-06-24 07:53 工匠初心 阅读(7554) 评论(0) 推荐(2) 编辑
摘要: 本文主要对final关键字的原理进行了讲解,同时对其基本用法进行了说明,包括final修饰的类,final修饰的方法和final修饰的变量,另外文中String变量通过==比较只是为了更加清晰的说明final原理,实际应用场景比较的时候还是用equals()方法,final也经常和static配合使用作为“全局常量” 阅读全文
posted @ 2019-06-23 09:26 工匠初心 阅读(2310) 评论(0) 推荐(1) 编辑
摘要: String可以说是Java中使用最多最频繁、最特殊的类,因为同时也是字面常量,而字面常量包括基本类型、String类型、空类型。 本文从String的不可变性,String创建时字面量和String对象的不同,字符串字面量常量池,字符串的内存结构,常用的String相关方法的描述 阅读全文
posted @ 2019-06-22 10:55 工匠初心 阅读(2995) 评论(0) 推荐(2) 编辑