E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
集合源码
Java基础之LinkedList源码解析
Java
集合源码
解析系列Java基础之HashMap源码解析Java基础之LinkedHashMap源码解析Java基础之HashTable源码解析Java基础之ArrayList源码解析HashSet
xxq2dream
·
2020-06-30 09:30
阿里P8大牛手写的源码笔记:Java集合+Java多线程+MyBatis+Spring
Java
集合源码
笔记Java集合是我认为在Java基础中最最重要的知识点了,Java集合是必须掌握的。我在实习/秋招面试的时候,只要是面到Java,那一定是少不了Java集合。
Java技术剑
·
2020-06-30 07:00
Java
面试
程序员
【两万字】面试官:听说你很懂
集合源码
,接我二十道问题!
问题一:看到这个图,你会想到什么?(PS:截图自《编程思想》)答:这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这里的意思是指Map的KeySet获取到的一个视图是Collection的子接口。我们可以看到集合有两个基本接口:Map和Collection。但是我个人认为Map并不能说是一个集合,称之为映射或许更为合适,因为它的Ke
山禾说
·
2020-06-29 15:00
【Java
集合源码
解析】LinkedList源码分析
LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在随机插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。本文主要通过源码分析LinkedList。LinkedList的类结构publicclassLinkedLi
weixin_44029692
·
2020-06-29 11:05
java集合
源码解析
【Java
集合源码
解析】ArrayList源码分析
一、简介ArrayList的底层实现原理是动态数组,所以它需要占据了一块连续的内存空间,其长度就是数组的大小,因为底层是数组,所以ArrayList可以以O(1)的时间复杂度去根据下标访问元素。在每次添加新的元素时,ArrayList都会检查是否需要进行扩容操作,扩容是十分消耗性能的操作,所以知道集合组要多大的容量,再初始化的时候就进行赋值。二、源码阅读先来看看继承关系ArrayList实现了Li
weixin_44029692
·
2020-06-29 11:05
源码解析
java集合
Java
集合源码
解析(易于理解版)
前文:首先你要耐心,最好有一定源码基础,没有也行下面也会教你怎么有效阅读源码。其次为什么先讲List。因为建立再这个基础上去理解其他的东西,事半功倍。原文件:原文件链接,觉得有用下载正文:JAVA集合实现原理及其优化。背景介绍:这是基于jdk1.8分析的,主要是对java集合的实现源码分析。Java集合框架:注:上图参考百度结果。除了上面的集合类型。我们还会将Stack(栈)、Node(树)、Qu
摩羯的成长期
·
2020-06-29 05:27
java
HashSet和LinkedHashSet
Java
集合源码
解析系列Java基础之HashMap源码解析Java基础之LinkedHashMap源码解析Java基础之HashTable源码解析Java基础之ArrayList源码解析Java基础之
xxq2dream
·
2020-06-29 01:52
java静态代理和动态代理分析
一直想分享一些技术,为多变的技术带来一些分享,以后会慢慢的带来一些自己学过的技术,和自己的一些心得,最近想分享effectjava,设计模式,并发编程,一些java
集合源码
和并发包源码,jvm,mybatis
weixin_34064653
·
2020-06-28 10:44
Java
集合源码
剖析汇总
JAVA
集合源码
剖析Java集合之ArrayList源码剖析Java集合之LinkedList源码剖析Java集合之Vector源码剖析Java集合之HashMap源码剖析Java集合之Hashtable
咖啡Q伴侣
·
2020-06-27 03:28
Java集合源码剖析
List
集合源码
解析原理和用法
注:以下所用源码均基于JDK1.8基础(特殊说明除外)先从源码入手解析:publicinterfaceListextendsCollection{}Anorderedcollection(alsoknownasasequence).Theuserofthisinterfacehasprecisecontroloverwhereinthelisteachelementisinserted.Theus
Mu_Transformed
·
2020-06-26 23:32
数据结构
JAVA
(已上岸)记一次Java后台实习面试问题——附答案
面试官:自我介绍、项目提了一嘴、JDK1.8、
集合源码
、TCP细节、HTTP和HTTPS、redis数据结构和常用方法、消息队列基础、Spring、SpringCloud、Maven、智力题、手撕算法(
相信天道酬勤的M1ng
·
2020-06-26 00:41
数据库
数据库
MySQL
索引
实习面试题
SQL优化
ArrayList 深入理解底层源码
ArrayList
集合源码
解读介绍构造方法add方法remove方法总结介绍ArrayListJdk1.8采用的是数组的数据结构,是非线程安全的一个集合(多线程下数据不安全),本文章主要讲解ArrayList
大山里的技术宅
·
2020-06-25 02:43
java底层源码
笔记
[Java]集合架构分析
研究源码可以学到大神的思路和如何写出优雅的代码下面是我看Java
集合源码
过程中帮助很大的很厉害的博主http://www.cnblogs.com/skywang12345/http://blog.csdn.net
豆沙包lo
·
2020-06-24 22:16
Java
Java常用
集合源码
级深度解析
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java集合类的整体框架如下:从上图中可以看出,集合类主要分为两大类:Collection和Map。C
互扯程序
·
2020-06-24 16:59
互联网开发
[Java
集合源码
剖析] Vector 源码分析
转载自https://blog.csdn.net/ns_code/article/details/35793865前言在学习了ArrayList源码之后,应该学习Vector源码,将两者进行比较,这是一个比较常问的面试题.如何找到Vector源码找到类:在IDEA中新建一个Java项目,在ExternalLibraries中,点击,然后依次点击rt.jar、java、lang、util,就可以找到
mrbm_lj
·
2020-06-24 15:28
Java学习
【Java
集合源码
剖析】LinkedHashmap源码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/37867985前言:有网友建议分析下LinkedHashMap的源码,于是花了一晚上时间研究了下,分享出此文(这个系列的最后一篇博文了),希望大家相互学习。LinkedHashMap的源码理解起来也不难(当然,要建立在对HashMap源码有较好理解的基础上)。LinkedHashMap简介L
兰亭风雨
·
2020-06-24 15:42
Java集合源码剖析
Java集合源码剖析
【Java
集合源码
剖析】TreeMap源码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/36421085前言本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。红黑树简
兰亭风雨
·
2020-06-24 15:09
Java集合源码剖析
Java集合源码剖析
【Java
集合源码
剖析】Vector源码剖析
转载请注明出处:http://blog.csdn.net/ns_code/article/details/35793865Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。Vector没有丝线Se
兰亭风雨
·
2020-06-24 15:09
Java集合源码剖析
Java集合源码剖析
list
集合源码
分析
List集合我们众所周知的就是有序可重复,底层是一维数组,但是我现在通过面试的情况发现自己对于集合的理解还是太浅薄了。ArrayList底层是一个数组,让我们了解ArrayList到底是什么。首先ArrayList都知道查找快,增删慢,了解一下为什么?看一下源码:publicclassArrayListextendsAbstractListimplementsList,RandomAccess,C
liwei147__
·
2020-06-24 07:48
CopyOnWriteArrayList 并发
集合源码
分析
在CopyOnWriteArrayList里处理写操作(包括add、remove、set等)是先将原始的数据通过JDK1.6的Arrays.copyof()来生成一份新的数组然后在新的数据对象上进行写,写完后再将原来的引用指向到当前这个数据对象,这样保证了每次写都是在新的对象上(因为要保证写的一致性,这里要对各种写操作要加一把锁,JDK1.6在这里用了重入锁),然后读的时候就是在引用的当前对象上进
飞人小天使
·
2020-06-24 05:22
java数据结构
JDK1.7 HashMap
漫画:高并发下的HashMap详细的解释↓HashMap深度分析源码解释↓【Java
集合源码
剖析】HashMap源码剖析HashMap是基于链表和数组实现的用于存储key-value键值对的集合。
pluss
·
2020-06-23 15:13
Java 基础(二)
集合源码
解析 Iterator
首先,在探索集合之前,我们先来思考一个问题,集合是什么?针对一个特定的问题,如果事先不知道需要多少个对象,或者它们的持续时间有多长,那么也不知道如何保存那些对象。既然如此,怎样才能知道那些对象要求多说空间呢?事先上根本无法提前知道,除非进入运行期。在面向对象的设计中,大多数问题的解决办法似乎都有些轻率——只是简单地创建另一种类型的对象。用于解决特定问题的新型对象容纳了指向其他对象的引用。当然,也可
Anonymous___
·
2020-06-23 10:37
Java基础之HashTable源码解析
Java
集合源码
解析系列Java基础之HashMap源码解析Java基础之LinkedHashMap源码解析Java基础之ArrayList源码解析Java基础之LinkedList源码解析HashSet
xxq2dream
·
2020-06-23 08:21
Java基础之HashMap源码解析
Java
集合源码
解析系列Java基础之LinkedHashMap源码解析Java基础之HashTable源码解析Java基础之ArrayList源码解析Java基础之LinkedList源码解析HashSet
xxq2dream
·
2020-06-22 20:54
Java多线程(8) - 同步(并发)类容器详解(CopyOnWrite容器、ConcurrentMap容器、Queue队列容器)
这些复合操作在多线程并发的修改容器时,可能会表现出意外的行为,最典型的就是之前解析
集合源码
时,讲到的Fast-Fast机制,会抛出ConcurrentModificationException异常,这是
Levi_
·
2020-06-22 05:45
Java
Java
集合源码
分析之Map(二):接口SortedMap
由于乱序的数据对查找不利,例如无法使用二分法等降低算法的时间复杂度,如果数据在插入时就排好顺序,查找的性能就会提升很多。SortedMap接口就是为这种有序数据服务的。SortedMap接口需要数据的key支持Comparable,或者可以被指定的Comparator接受。SortedMap主要提供了以下方法://返回排序数据所用的ComparatorComparatorcomparator();
大大纸飞机
·
2020-06-21 20:12
Android精品开源项目2
转自:http://blog.csdn.net/shimiso/article/details/197719151.11种安卓传感器使用源码非常强大的11种安卓传感器使用例子
集合源码
,包括加速度传感器、
Carserdadi
·
2020-06-21 18:22
Android开源项目
JAVA
集合源码
分析——Vector
一、Vector概述1)Vector是一个位于java.util包中线程安全的集合2)底层数据结构是类似ArrayList一样的可变的数组3)Vector的数组变化和minCapacity和CapacityIncrement这两个变量有关4)Vector会发生fail-fast(快速失败)二、Vector继承层次和实现接口1)继承层次和实现接口说明:Vector继承的层次和实现的接口基本和Arra
csdnadvancer
·
2020-06-21 18:16
JAVA集合源码分析
List之ArrayList源码实现
2.要点要点说明是否可以为空无是否有序无是否可以重复无是否线程安全无只要在学习
集合源码
的时候的时刻牢记这四点,就会时刻思路比较清晰,更便于我们去理解其设计思想和实现。
瘦子没有夏天
·
2020-06-21 12:21
Java集合框架
面试Java需要的知识总结
面试题全集(中)(JavaWeb)Java面试题全集(下)(JavaEE)SSH的一些面试题2.Java几大重点(1)集合基础知识+原理(重点是HashMap)基础:Java集合基础原理:兰亭风雨:Java
集合源码
剖析
S_H-A_N
·
2020-06-21 03:21
面试
Java
集合源码
笔记:HashMap+List集合+Map集合+Collection+面试题
Java集合思维导图Java
集合源码
笔记笔记是全程手写出来的,希望大家拿到笔记后别丢进收藏夹吃灰!转发+关注,加我VX【tkzl6666】获得免费领取方式。
Java技术箭
·
2020-04-21 17:51
Java
架构
程序员
Java List
集合源码
分析(JDK 1.8)
java的集合是常用的类,也是面试官非常喜欢的问题。集合可以分为set集合、list集合和map集合list集合,这篇博客会分析list集合。时间非常紧迫的同学可以直接看最后的总结。首先看一下List类的体系结构,JDK版本为1.8.0List体系List体系中有三个我们常用的类:ArrayList、Vector、LinkedList。下面主意分析这三个类ArrayListArrayList内部使
小怪兽大作战
·
2020-04-15 09:39
Java
集合源码
分析之Map(一):超级接口Map
数组与链表在处理数据时各有优缺点,数组查询速度很快而插入很慢,链表在插入时表现优秀但查询无力。哈希表则整合了数组与链表的优点,能在插入和查找等方面都有不错的速度。我们之后要分析的HashMap就是基于哈希表实现的,不过在JDK1.8中还引入了红黑树,其性能进一步提升了。本文主要分析JDK中关于Map的定义。接口MapMap的定义为:Anobjectthatmapskeystovalues.Amap
大大纸飞机
·
2020-04-11 05:31
Java基础之LinkedHashMap源码解析
Java
集合源码
解析系列Java基础之HashMap源码解析Java基础之HashTable源码解析Java基础之ArrayList源码解析Java基础之LinkedList源码解析HashSet和LinkedHashSetLinkedHashMappublicclassLinkedHashMapextendsHashMapimplementsMap
xxq2dream
·
2020-04-06 18:17
集合源码
之hashMap
引子java的集合类使我们经常使用的,而hashmap更是集合中常用的集合类。由于使用的散列,hashmap的crud操作都接近于常数操作时间,本文目的是探究hashmap的底层实现,看java中的散列实现,希望能给想要了解hashmap实现的童鞋一点帮助,需要注意的是hashmap不是线程安全的集合类。本文分为三部分:第一部分探究hashmap的数据结构、第二部分探究hashmap的重要算法实现
jatesun
·
2020-03-31 12:58
java
集合源码
分析(二)LinkedList
前言前面一篇我们分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表?一、LinkedList简介1.1、LinkedList概述LinkedListLinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的。LinkedList是一个继承于AbstractSequentialList
爱情小傻蛋
·
2020-03-28 21:57
Java
集合源码
分析之LinkedList
分析完了List与Queue之后,终于可以看看LinkedList的实现了。LinkedList弥补了ArrayList增删较慢的问题,但在查找方面又逊色于ArrayList,所以在使用时需要根据场景灵活选择。对于这两个频繁使用的集合类,掌握它们的源码并正确使用,可以让我们的代码更高效。LinkedList既实现了List,又实现了Deque,前者使它能够像使用ArrayList一样使用,后者又使
大大纸飞机
·
2020-03-25 10:23
Java
集合源码
详解之ArrayList
既然是看源码,那我们要怎么看一个类的源码呢?这里我推荐的方法是:1)看继承结构看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。2)看构造方法在构造方法中,看做了哪些事情,跟踪方法中里面的方法。3)看常用的方法跟构造方法一样,这个方法实现功能是如何实现的注:既然是源码,为什么要这样设计类,有这样的继承关系。这就要说到设计模式的问题了。所以我们要了解常用的设计模式,才能更深刻的去理
JourWon
·
2020-03-21 16:28
Java
集合源码
学习—ArrayList
又是热爱学习的一天…今天准备学习一下ArrayList的源码,研究它都干了什么。总结(先看结论,再寻找如何得出的此结论)ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。ArrayList实现了List,提供了基础的添加、删除、遍历等操作。ArrayList实现了RandomAccess,提供了随机访问的能力。ArrayList实现了Clone
江湖人称小程
·
2020-03-16 16:24
Java
java
arraylist
源码
扩容
Java
集合源码
分析之Queue(三):ArrayDeque
在介绍了Queue与Deque概念之后,这是要进行分析的第一个实现类。ArrayDeque可能大家用的都比较少,但其实现里有许多亮点还是值得我们关注的。Deque的定义为doubleendedqueue,也就是允许在两侧进行插入和删除等操作的队列。这个定义看起来很简单,那么我们怎么实现它呢?我们最容易想到的就是使用双向链表。我们在前文介绍过单链表,其每个数据单元都包含一个数据元素和一个指向下一个元
大大纸飞机
·
2020-03-08 00:54
Java
集合源码
分析之基础(五):平衡二叉树(AVL Tree)
二叉排序树很好的平衡了插入与查找的效率,但不平衡的二叉排序树效率大打折扣。今天介绍的AVL树就是一种解决此问题的方案。定义平衡二叉树(Self-BalancingBinarySearchTree或Height-BalancedBinarySearchTree),是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。它是一种高度平衡的二叉排序树。意思是说,要么它是一棵空树,要么它的左子
大大纸飞机
·
2020-02-27 11:56
Java集合-ArrayDeque源码深入浅出分析
概要最近持续阅读Java
集合源码
实现,学习,写文章,分析,画图,感觉写技术文章是个很有难度的活。
Misout
·
2020-02-27 09:48
Java
集合源码
分析之Queue(二):接口Deque
Deque全称为doubleendedqueue,即双向队列,它允许在两侧插入或删除元素,同时也建议我们不要向其中插入null值。除此之外,其余特性则和父级Queue类似。Deque大多数情况下不会限制元素的数量,但这不是必须的。Deque中定义的方法主要分为四部分,第一部分就如Deque定义所言,提供两侧插入或删除的方法。第二部分是继承自Queue的实现。第三部分表示如果要基于此实现一个Stac
大大纸飞机
·
2020-02-26 03:20
Java语言基础+计算机网络+数据结构 知识手册
加油,美好的一天开始啦~纯Java语言基础内容1、常见
集合源码
分析。(以下是我们被问到过,能想起的所有知识点)ArrayList:1、初始化时机,初始化发生了什么。
咸鱼正翻身
·
2020-02-25 19:35
Java
集合源码
分析之Queue(一):超级接口Queue
在日常生活中,排队几乎随处可见,上地铁要排队,买火车票要排队,就连出门吃个大餐,也要排队。。。之前研究的ArrayList就像是一个缺乏管理的排队系统。大家虽然会排队,但一会走个人,大家向前挪一挪,一会插个人,大家向后挪一挪,碰到这样的队伍,一定让人痛苦万分吧?今天要介绍的Queue就不同了,它是一个严格的排队系统。就像许多火车站排队窗口在两侧加了护栏一样,大家只能从队尾进来,从队首离开,我们称之
大大纸飞机
·
2020-02-25 10:39
Java
集合源码
分析之基础(六):红黑树(RB Tree)
红黑树和AVL树的思想是类似的,都是在插入过程中对二叉排序树进行调整,从而提升性能,它的增删改查均可以在O(lgn)内完成。本文会从定义到实现一棵红黑树展开,还会简单介绍其与AVL树的异同。定义红黑树是一棵二叉排序树。且满足以下特点:每个节点或者是黑色,或者是红色。根节点是黑色。每个叶子节点(NIL)是黑色。[注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]如果一个节点是红色的,则它
大大纸飞机
·
2020-02-25 01:39
Java
集合源码
分析之Iterable概述
前言当我们想要遍历集合时,Java为我们提供了多种选择,通常有以下三种写法:写法1:for循环for(inti=0,len=strings.size();iiterator();也就是说,如果想让一个Java对象支持foreach,只要实现Iterable接口,然后就可以像集合那样,通过Iteratoriterator=strings.iterator()方式,或者使用foreach,进行遍历了。
大大纸飞机
·
2020-02-20 19:03
Java
集合源码
分析之List(二):ArrayList
做了这么多准备,终于到了ArrayList了,ArrayList是我们使用最为频繁的集合类了,我们先看看文档是如何介绍它的:Resizable-arrayimplementationoftheListinterface.Implementsalloptionallistoperations,andpermitsallelements,includingnull.Inadditiontoimplem
大大纸飞机
·
2020-02-15 08:31
Java
集合源码
分析之List(一):超级接口List
List是Collection三大直接子接口之一,其中的数据可以通过位置检索,用户可以在指定位置插入数据。List的数据可以为空,可以重复。以下是其文档注释,只看前两段:Anorderedcollection(alsoknownasasequence).Theuserofthisinterfacehasprecisecontroloverwhereinthelisteachelementisins
大大纸飞机
·
2020-02-12 06:53
java
集合源码
分析(四)HashMap
本文从Hash方法开始,通过分析源码,深入介绍了JDK不同版本中HashMap的实现。HashMap简介HashMap主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8之前HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(
爱情小傻蛋
·
2020-02-10 21:09
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他