首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java源码
订阅
壹卋丶壹頃
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
Java8 HashMap源码分析
HashMap是基于hash表的map的实现,使用key-value形式存储键值对,并允许使用 null 值和 null 键,但是key只能有一个为null. Map不保证映射的顺序,其内部是根据hash值去模运算去排列的。HashMap内部使用entry数组作为存储的介质. …
图解HashMap(一)
HashMap是日常开发中经常会用到的一种数据结构,在介绍HashMap的时候会涉及到很多术语,比如时间复杂度O、散列(也叫哈希)、散列算法等,这些在大学课程里都有教过,但是由于某种不可抗力又还给老师了,在深入学习HashMap之前先了解HashMap设计的思路以及以及一些重要…
死磕java底层(二)—消息服务
这一节作为上一节多线程的延续,先说一下java原生的阻塞队列(Blocking Queue),之后再说一下JMS(Java Messaging Service,java消息服务)以及它的实现之一ActiveMQ消息队列,所以都归并到消息服务中讨论。 BlockingQueue也…
死磕java底层(一)—多线程
它是内存中的一段独立的空间,可以负责当前应用程序的运行。当前这个进程负责调度当前程序中的所有运行细节(操作系统为进程分配一块独立的运行空间); 进程是负责某个程序的执行,线程是负责进程中某个独立功能的运行,一个进程至少要包含一个线程。 在一个进程中可以开启多个线程,让多个线程同…
从代码层读懂 HashMap 的实现原理
在这篇文章中,作者从 HashMap 的数据结构开始分析到 HashMap 的源码分析帮助我们更好地了解 HashMap 的实现原理。
JAVA集合:HashMap深度解析(版本对比)
今天先为JAVA集合系列源码开一个头,也尝试着用不同的方式,不同的角度去阅读源码,去学习源码中的一些思想。HashMap作为最常使用的集合之一;JDK1.7之前,有很大的争议,一方面是数据量变大之后的查询效率问题,还有就是线程安全问题。本文将从JDK1.7和1.8两个不同版本的…
Java 8 并发: 原子变量和 ConcurrentMap
java.concurrent.atomic 包下有很多原子操作的类。 在有些情况下,原子操作可以在不使用 synchronized 关键字和锁的情况下解决多线程安全问题。 在内部,原子类大量使用 CAS, 这是大多数现在 CPU 支持的原子操作指令, 这些指令通常情况下比锁同…
HashMap源码分析(JDK 1.8)
HashMap是我们在编程中遇到极其频繁、非常重要的一个集合类,如果能对HashMap做进一步的性能优化是非常有价值的而JDK 1.8做到了,所以非常有必要学习HashMap的重点源码,了解大师的手法。 了散列算法,但是在JDK 1.8中引入了红黑树,在链表的长度大于等于8并且…
图解HashMap(二)
上篇分析了HashMap的设计思想以及Java7和Java8源码上的实现,当然还有一些"坑"还没填完,比如大家都知道HashMap是线程不安全的数据结构,多线程情况下HashMap会引起死循环引用,它是怎么产生的?Java8引入了红黑树,那是怎么提高效率的?本篇先填第一个坑,还…
ArrayList底层数组扩容原理 - Java那些事儿专栏
再次强调,ArrayList是一个普通的类,如果我们开心,可以自己写一个。 ArrayList初始化 - Java那些事儿专栏 文章发表后,评论区有人问如下问题。 再看一下执行结果,也在我们期望中。 看到了传说的中数组下标越界异常。在Java中,数组一但在堆内存中创建,长度是固…