首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
源码解析
订阅
螺蛳小公鸡
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
图解ConcurrentHashMap
Concurrent翻译过来是并发的意思,字面理解它的作用是处理并发情况的 HashMap,在介绍它之前先回顾下之前的知识。通过前面两篇学习,我们知道多线程并发下 HashMap 是不安全的(如死循环),更普遍的是多线程并发下,由于堆内存对于各个线程是共享的,而 HashMap…
图解HashMap(一)
HashMap是日常开发中经常会用到的一种数据结构,在介绍HashMap的时候会涉及到很多术语,比如时间复杂度O、散列(也叫哈希)、散列算法等,这些在大学课程里都有教过,但是由于某种不可抗力又还给老师了,在深入学习HashMap之前先了解HashMap设计的思路以及以及一些重要…
死磕 java集合之LinkedHashMap源码分析
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问,可以用来实现LRU缓存策略。 LinkedHashMap可以看成是 LinkedList + …
死磕 java集合之ArrayList源码分析
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。 ArrayList实现了List, RandomAccess, Cloneable, …
我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。 这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。 既然是合理的推断,那就要要足够的依据,所以我们可…
红黑树,超强动静图详解,简单易懂
写在前面红黑树,对很多童鞋来说,是既熟悉又陌生。学校中学过,只了解大概;工作中不怎么使用,但面试又是重点。每次需要查看红黑树内容时都很难以更生动形象的方式来理解其内容。没错,本文内容就是要解决这个问题
死磕 java集合之HashMap源码分析
欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 HashMap采用key/value存储结构,每个key对应唯一的value,查询和修改的速度都很快,能达到O(1)的平均时间复杂度。它是非线程安全的,且不保证元素存储的顺序; HashMap…
相对友好的 AVL Tree 教程
要判断这棵树中是否存在 1 。 1 处在这棵树的最底部,并且这个棵树呈现出一边倒的形状,导致找 1 时遍历了所有的节点,这种情况下时间复杂度为 O(n) 。可见一旦二叉搜索树失去了平衡也就失去了效率,理想的二叉搜索树,是树的节点“均匀”分布在根节点两侧,才能满足时间复杂度 O(…
动态代理的原理及其应用
动态代理是一种在运行时动态地创建代理对象,动态地处理代理方法调用的机制。 实际上它是一种代理机制。代理可以看做是对调用目标的一个封装,直接通过代理来实现对目标代码的调用 Client:代表访问者的抽象角色,client将会访问Isubject类型的对象或者资源,通过代理类进行访…
Spring AOP就是这么简单啦
没有学Spring AOP之前,我们就可以使用代理来完成。 Spring AOP默认是使用JDK动态代理,如果代理的类没有接口则会使用CGLib代理。 JDK在创建代理对象时的性能要高于CGLib代理,而生成代理对象的运行性能却比CGLib的低。 看到这里我们就应该知道什么是S…