• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

HashMap 源码中这些常量的设计目的

HashMap 源码中这些常量的设计目的
前言 之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获。 HashMap默认初始化大小为什么是1 << 4(16) /** * The default initial capacity - MUST be a power of two. */ stati……继续阅读 »

winrains 3个月前 (03-28) 13浏览 0评论 0个赞

SpringSession系列:存储机制之Redis&Map

SpringSession系列:存储机制之Redis&Map
在之前的文章中已经对SpringSession的功能结构,请求/响应重写等做了介绍。本文将继续来介绍下SpringSession中存储部分的设计。存储是分布式session中算是最核心的部分,通过引入三方的存储容器来实现session的存储,从而有效的解决session共享的问题。 1、SpringSession存储的顶级抽象接口 SpringSession……继续阅读 »

winrains 4个月前 (03-21) 22浏览 0评论 0个赞

谈谈集合:Map

谈谈集合:Map
本文来谈谈我们平时使用最多的HashMap。 1. 简介 HashMap是我们在开发过程中用的最多的一个集合结构,没有之一。HashMap实现了Map接口,内部存放Key-Value键值对,支持泛型。在JDK1.8以前,HashMap内部是以数组加链表的结构维护键值对数据。在JDK1.8中,HashMap以数组、链表加红黑树的结构维护数据,当链表长度大于8……继续阅读 »

winrains 4个月前 (03-21) 17浏览 0评论 0个赞

谈谈集合:Queue

谈谈集合:Queue
之前说到,Java中集合的主要作用就是装盛其他数据和实现常见的数据结构。所以当我们要用到“栈”、“队列”、“链表”和“数组”等常见的数据结构时就应该想到可以直接使用JDK给我们提供的集合框架。比如说当我们想用到队列时就应该想到使用LinkedList和ArrayDeque。本篇博客将介绍Collection框架中的Queue。 Queue接口……继续阅读 »

winrains 4个月前 (03-21) 14浏览 0评论 0个赞

谈谈集合:Stream Api

谈谈集合:Stream Api
1. 什么是stream API Java8提供的stream API可以让程序员像操作数据库一样操作集合。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码……继续阅读 »

winrains 4个月前 (03-21) 18浏览 0评论 0个赞

Java 集合框架常见面试题总结

Java 集合框架常见面试题总结
说说List,Set,Map三者的区别? List(对付顺序的好帮手): List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set(注重独一无二的性质): 不允许重复的集合。不会有多个元素引用相同的对象。 Map(用Key来搜索的专家): 使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复……继续阅读 »

winrains 7个月前 (12-14) 18浏览 0评论 0个赞

LinkedList 源码分析(JDK 1.8)

LinkedList 源码分析(JDK 1.8)
1.概述 LinkedList 是 Java 集合框架中一个重要的实现,其底层采用的双向链表结构。和 ArrayList 一样,LinkedList 也支持空值和重复值。由于 LinkedList 基于链表实现,存储元素过程中,无需像 ArrayList 那样进行扩容。但有得必有失,LinkedList 存储元素的节点需要额外的空间存储前驱和后继的引用。另一……继续阅读 »

winrains 8个月前 (11-01) 26浏览 0评论 0个赞

ArrayList 源码分析

ArrayList 源码分析
1.概述 ArrayList 是一种变长的集合类,基于定长数组实现。ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于 ArrayList 底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。其他方面,ArrayList 是非线程安全类……继续阅读 »

winrains 8个月前 (11-01) 21浏览 0评论 0个赞

LinkedHashMap 源码详细分析(JDK1.8)

LinkedHashMap 源码详细分析(JDK1.8)
1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外,LinkedHashMap 对访问顺序也提供了相关支持。在一些场景下,该特性很有用,比如缓存。在实现上,LinkedHashMap 很多方法直接继承自 HashMap,仅……继续阅读 »

winrains 8个月前 (11-01) 24浏览 0评论 0个赞

HashMap 源码详细分析(JDK1.8)

HashMap 源码详细分析(JDK1.8)
1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 – HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,……继续阅读 »

winrains 8个月前 (11-01) 15浏览 0评论 0个赞