
Java基础
文章平均质量分 79
George&Rita
星光不负赶路人!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java容器之源码分析(面试必备!)
(1)、概览以及容器中使用的设计模式:Java容器系列——(一)概览以及容器中使用的设计模式(2)、ArrayList源码分析:Java容器源码(一)——ArrayList(基于JDK8)(3)、Vector源码分析:Java容器源码(二)——Vector(基于JDK8)(4)、CopyOnWriteArrayList源码分析:Java容器源码(三)——CopyOnWriteArrayLis...原创 2019-08-26 21:42:05 · 292 阅读 · 4 评论 -
Java容器源码(五)——HashMap源码分析(基于JDK8)
文章目录(一)、知识点总结(二)、拉链法(三)、类名(四)、成员变量(五)、Node节点类(六)、构造方法(六)、tableSizeFor方法(七)、hash方法(八)、putMapEntries方法以及putVal方法(九)、resize方法(十)、remove方法(十一)、clear方法(十二)、containsValue方法更多Java容器源码分析可以参考:Java容器源码分析系列(持续更...原创 2019-08-27 17:15:45 · 618 阅读 · 0 评论 -
Java容器源码(六)——HashSet源码分析(基于JDK8)
(一)、概述HashSet是Java中常用的一个集合类,是Set接口的一个实现类,而Set接口又继承自Collection接口,所以HashSet同时也是Collection的实现类HashSet的底层实现是基于HashMap的,它利用HashMap中的key存储数据,使用成员变量PRESENT来填充value。因为HashSet的方法非常少,主要都是基于HashMap实现的,如果对Has...原创 2019-08-27 20:01:10 · 368 阅读 · 0 评论 -
Java容器源码(七)——HashTable源码分析(基于JDK8)
文章目录(一)、概述(二)、类名(三)、成员变量(四)、构造方法(四)、rehash方法(五)、addEntry方法(六)、put方法(七)、remove方法更多Java容器源码分析可以参考:Java容器源码分析系列(持续更新中!)(一)、概述HashTable其实和HashMap差不多,只不过HashTable是线程安全的,而HashMap则是线程不安全的,HashTable使用sync...原创 2019-08-27 21:44:19 · 387 阅读 · 0 评论 -
Java容器源码面试知识点汇总(超详细!)
Java容器源码(一)——ArrayList源码分析(基于JDK8)Java容器源码(二)——Vector源码分析(基于JDK8)Java容器源码(三)——CopyOnWriteArrayList源码分析(基于JDK8)Java容器源码(四)——LinkedList源码分析(基于JDK8)Java容器源码(五)——HashMap源码分析(基于JDK8)Java容器源码(六)——HashS...原创 2019-09-20 15:19:15 · 1043 阅读 · 0 评论 -
Java容器系列——(一)概览以及容器中使用的设计模式
(一)、概览容器主要分为Collection和Map两种,Collection主要用于存储对象的集合,而Map主要存储着键值对的映射表- Collection1.SetTreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如HashSet,HashSet查找的时间复杂度为O(1),TreeSet则为O...原创 2019-08-02 08:56:38 · 559 阅读 · 0 评论 -
Java容器源码(一)——ArrayList源码分析(基于JDK8)
文章目录(一)、ArrayList概述(二)、类名(三)、属性(四)、构造方法(五)、Add方法(扩容操作)(六)、Remove方法(删除元素)(七)、序列化(八)、trimToSize()方法(九)、indexOf()方法(十)、toArray()方法(十一)、batchRemove()方法(批量删除)(十二)、其他一些简单方法(十三)、System.arraycopy() 和 Arrays.c...原创 2019-08-24 19:59:18 · 979 阅读 · 0 评论 -
Java容器源码(二)——Vector源码分析(基于JDK8)
文章目录(一)、Vector概述(二)、Vector源码解析(三)、ArrayList与Vector更多Java容器源码分析可以参考:Java容器源码分析系列(持续更新中!)(一)、Vector概述Vecotr是基于数组实现的,是一个动态数组,数组容量可以自动增长Vector和ArrayList是十分类似的,不过Vector在每一个方法中都加入了Synchronized进行修饰,保证线程...原创 2019-08-24 20:00:20 · 497 阅读 · 0 评论 -
Java容器源码(三)——CopyOnWriteArrayList源码分析(基于JDK8)
文章目录(一)、概述(二)、适用场景(二)、类名(三)、成员变量(四)、构造方法(五)、set方法(六)、add方法(七)、remove方法(八)、addIfAbsent方法更多Java容器源码分析可以参考:Java容器源码分析系列(持续更新中!)(一)、概述CopyOnWriteArrayList的特点主要是实现了读写分离,读操作时不加锁,写操作才进行加锁,防止并发时写入导致数据丢失在...原创 2019-08-24 20:01:33 · 707 阅读 · 0 评论 -
Java容器源码(四)——LinkedList源码分析(基于JDK8)
(一)、概述LinkedList是实现了List接口和Deque接口的双端链表。Linked底层的数据结构是链表,不支持随机读取,但是在插入和删除方面就会显得很高效。同时LinkedList它也实现了Deque接口,这使他也具有了队列的特性。LinkedList是线程不安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchr...原创 2019-08-24 21:42:29 · 473 阅读 · 0 评论 -
Java中的增强for循环的底层实现原理与坑
在JAVA中,遍历集合和数组一般有以下三种形式:for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ",");}Iterator iterator = list.iterator();while (iterator.hasNext()) { System.out.print(ite...转载 2019-08-01 22:16:29 · 5125 阅读 · 6 评论