文章 2024-10-18 来自:开发者社区

Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)

导言 HashMap 的源码分析,是面试中经常问到的地方,这也是写这篇博文的重要原因之一。源码中有很多基础知识,是平时用不到的,比如位运算法,所以这里第一节就是先了解和学习一下位运算符。 一、基础铺垫 导言中也说了,基础知识有位运算法,位运算符的基础知识又与原码、反码、补码紧密相关,所...

文章 2024-02-01 来自:开发者社区

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)

引言本文介绍网络IO编程的入门部分,Java 的传统BIO Socket编程源码分析,了解如何将BIO阻塞行为accept() 和 read() 改造为非阻塞行为,并且将结合Linux文档介绍其中的机制,文档中描述了如何处理Socket的accept,对比Java的Socket实现代码,基本可以发现和Linux行为基本一致。废话不多说,我们直接开始。draw.io 文件本文涉及的个人源码分析绘图....

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)
文章 2023-12-14 来自:开发者社区

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)(二)

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)(一)https://developer.aliyun.com/article/1395315java.net.PlainSocketImpl#socketAccept不同的操作系统实现不同,这里仅以个人看到的JDK11版本源码为例。@Override void socketAccept(SocketImpl s) thr....

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)(二)
文章 2023-12-14 来自:开发者社区

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)(一)

引言本文介绍网络IO编程的入门部分,Java 的传统BIO Socket编程源码分析,了解如何将BIO阻塞行为accept() 和 read() 改造为非阻塞行为,并且将结合Linux文档介绍其中的机制,文档中描述了如何处理Socket的accept,对比Java的Socket实现代码,基本可以发现和Linux行为基本一致。废话不多说,我们直接开始。draw.io 文件本文涉及的个人源码分析绘图....

【Java】BIO源码分析和改造(GraalVM JDK 11.0.19)(一)
文章 2023-12-05 来自:开发者社区

HashMap的源码分析(基于JDK1.8)

HashMap的源码分析(基于JDK1.8)Java中的HashMap是一种常用的数据结构,它是基于哈希表的数据结构,可以用来存储键值对。在HashMap中,每个键值对被称作一个Entry,每个Entry包含一个键和一个值。HashMap的实现基于数组和链表,数组用于存储Entry,链表用于解决哈希冲突。概述HashMap是一种基于哈希表的数据结构,其内部通过哈希算法实现了对数据的快速访问。在H....

文章 2023-11-07 来自:开发者社区

源码分析系列教程(12) - 手写Map框架(基于JDK1.7)

代码已上传到GitHub,有兴趣的同学可以下载来看看:https://github.com/ylw-github/Java-CodeAnalysis-Demo1. Map接口:package com.ylw.jdk.hashmap; public interface ExtMap<K, V> { // 向集合中插入数据 public V put(K k, V v); ...

文章 2023-01-12 来自:开发者社区

【Java原理探索】「ConcurrentHashMap」深入浅出的源码分析(JDK1.8版本)

承接上文在上一篇文章的时候,已经基本解释了JDK1.7版本的ConcurrentHashMap的核心代码,可见:☕【Java原理探索】「ConcurrentHashMap」深入浅出的源码分析(JDK1.7版本),接下来我们要研究一下目前非常重要的JDK1.8版本的ConcurrentHashMap,这是目前我们最应该学习的技术源码之一。前提概要ConcurrentHashMap是concurre....

【Java原理探索】「ConcurrentHashMap」深入浅出的源码分析(JDK1.8版本)
文章 2023-01-12 来自:开发者社区

【Java原理探索】「ConcurrentHashMap」深入浅出的源码分析(JDK1.7版本)

前提概要ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现,以及被广泛使用,经典的开源框架Spring的底层数据结构就是使用ConcurrentHashMap实现的。ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7)。与同是线程安全的....

【Java原理探索】「ConcurrentHashMap」深入浅出的源码分析(JDK1.7版本)
文章 2023-01-12 来自:开发者社区

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.7版本)】|Java 开发实战

概念回顾HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度依然为O(1),因为最新的Entry会插入链表头部,急需要简单改变引用链即可,而对于查找操作来讲,此时就需要遍历链表,然....

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.7版本)】|Java 开发实战
文章 2023-01-12 来自:开发者社区

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.8版本)】|Java 刷题打卡

题目HashMap深入浅出的源码分析知识点HashMap是一个基于map接口实现的散列表,存储内容是键值对 (key-value) 映射,并且键和值都可以使用null,因为key不允许重复,因此只能有一个键为null。HashMap使用 hash 算法进行数据的存储和查询。HashMap的实现用的是数组+链表+红黑树的结构,也叫哈希桶。在jdk 1.8之前都是数组+链表的结构,因为在链表的查询操....

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.8版本)】|Java 刷题打卡

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐