最近,新版本的JDK又双叒叕发布了,目前已经JDK 14 了,从2017年8月份开始,JDK的更新频率变成了每半年一次,将固定在每年的3月份和9月份发布新版本。 按照这个频率,过不了多久,JDK 20 就要推出了... 最早的JDK发布于1996年,相信比很多读者的年龄都要小,其发布频次如下: Ja ...
分类:
编程语言 时间:
2020-03-23 11:09:11
阅读次数:
68
简介:本文重点给出面试高频二叉树的实现 二叉查找树,顾名思义,就是用于辅助我们进行查找的树状数据结构。 在讲本文的主角之前,先讲一下其他与查询相关的数据结构。 首先,无序表,查找的时间复杂度为O(n). 有序表(预排序),查找(二分查找)的时间复杂度为O(logn),但是插入和删除的时间复杂度为O( ...
分类:
编程语言 时间:
2020-03-22 09:11:42
阅读次数:
91
目录 一 简介 二 概览 三 源码分析 3.1 查找 3.2 遍历 3.3 插入 3.4 删除 一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、p ...
分类:
其他好文 时间:
2020-03-18 18:51:12
阅读次数:
58
转自https://www.cnblogs.com/ivanovcraft/p/9084315.html Map是什么 Map是从键(key)到值(value)的映射,其内部实现是一棵以key为关键码的红黑树 Map的相关操作 声明: 像这样: map<key的类型,value的类型>名称; 比如: ...
分类:
其他好文 时间:
2020-03-17 23:52:51
阅读次数:
67
HashMap底层源码剖析 数组+单向链表+红黑树 数组: 数组每一项都是一个链表,其实就是数组和链表的结合体 单向链表: 当法神hash碰撞时,首先会找到数组对应位置,然后1.8采用尾插入法(1.7采用头插入法),形成一个单项链表结构 红黑树: 当数组中每项的链表长度大于8时,会转换为红黑树 什么 ...
分类:
其他好文 时间:
2020-03-17 19:27:07
阅读次数:
58
一.HashMap底层源码剖析 1.介绍HashMap底层用到的数据结构 数组:数组的每一项都是一个链表,其实就是数组和链表的结合体 单向链表:当发生Hash碰撞时,首先会找到数组对应位置,然后1.8采用尾插入法(1.7采用头插入法),形成一个单向链表结构 jdk1.8 后 红黑树:当数组中每项的链 ...
分类:
其他好文 时间:
2020-03-17 13:56:31
阅读次数:
46
https://juejin.im/post/5d4a7559f265da03e05afcb4 为什么需要B树和B+树 我们常用的二叉搜索树的结构是红黑树,包括面试中红黑树被问到的几率也更大。甚至Java中的HashMap里面的实现也是红黑树,课件红黑树的强大和其广泛的适用性。那么为什么还要发明出b ...
分类:
其他好文 时间:
2020-03-16 17:45:38
阅读次数:
56
一.了解Map集合吗?Map集合都有哪些实现 1.HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap 二.HashMap和HashTable之间的区别 1.HashMap:底层基于数组+单向链表(红黑树),非线程安全,默认容量为16,允 ...
分类:
其他好文 时间:
2020-03-16 13:18:06
阅读次数:
49
一、数据结构 同HashMap,数组+链表+红黑树,关键属性也和HashMap相同 ConCurrentHashMap支持高并发的访问和更新,它是线程安全的 检索操作不用加锁,get方法是非阻塞的 key和value都不允许为null 二、spread() //高低16位异或处理static fin ...
分类:
其他好文 时间:
2020-03-15 20:48:53
阅读次数:
72
java虚拟机底层原理与性能优化 1、java虚拟机内存模型能说说吗? 2、类加载器的双亲委派模型是什么? 3、java垃圾收集算法与收集器有哪些? 4、JVM诊断调优工具有哪些 5、每秒几十万并发的秒杀系统为什么会频繁发生GC? MySQL索引数据结构与性能优化 1、索引数据结构红黑树、Hash、 ...
分类:
其他好文 时间:
2020-03-15 13:43:13
阅读次数:
69