插入或更新节点 根据(n - 1) & hash计算得到插入的数组下标i,然后进行判断 table[i]==null 那么说明当前数组下标下,没有hash冲突的元素,直接新建节点添加。 table[i].hash == hash &&(table[i]== key || (key != null & ...
分类:
其他好文 时间:
2020-06-21 15:33:26
阅读次数:
57
Set的简介 Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 HashSet是哈希表结构,主要利用HashMap的key来存储元素 ...
分类:
编程语言 时间:
2020-06-21 13:30:55
阅读次数:
58
1 select方式,通过在不同的fd_set内注册不同的描述符,将信息传递给内核后,内核 将修改有事件发生的描述符,select描述符首先于监听的描述符数量收到限制,并且每次 都要遍历所有描述符因此其效率受到影响。 2 POLL方式虽然没有类描述符数量的限制,但是其效率仍然和select是相同的。 ...
分类:
其他好文 时间:
2020-06-18 20:00:26
阅读次数:
67
MySQL Myisam引擎和Innodb引擎的区别 Myisam Innodb 5.5版本前默认引擎 5.5后默认引擎 索引数据结构 B+树 B+树 索引类型 非聚集索引 聚集索引 事务 不支持 支持(提交、回滚) 外键 不支持 支持 锁级别 表级锁 行级锁,能抗更高并发。可能发生死锁,消耗资源多 ...
分类:
数据库 时间:
2020-06-17 12:56:21
阅读次数:
75
最强面试题推荐: 2020Java面试题及答案,命中率高达90% 蚂蚁金服Java一面 1. 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL 树)和弱平衡二叉树 (红黑树)有什么区别 2. B 树和 B+树的区别,为什么 MySQL 要使用 B+树 3. HashMap 如何解决 Hash冲 ...
分类:
编程语言 时间:
2020-06-17 11:07:56
阅读次数:
754
一、技术总结 首先说明一下,这一题只是简单的判断是否为红黑树,并没有详细的用到红黑树中的插入、删除等复杂情况。如果想学习可以参考这篇博客:https://www.jianshu.com/p/e136ec79235c 它是在搜索树以及平衡二叉树上发展而来的,但是又不完全是平衡二叉树,因为红黑树对高度差 ...
分类:
其他好文 时间:
2020-06-13 23:36:08
阅读次数:
85
1、树的简介 树结构本身是一种天然的组织结构 计算机文件夹 家谱 图书馆图书分类 公司职工 将数据使用树结构存储后,出奇的高效 2、树的分类 二分搜索树(Binary Search Tree) 平衡二叉树 AVL 红黑树 堆 并查集 线段树 Trie (字典树,前缀树) 3、二叉树简介 一个元素具有 ...
分类:
其他好文 时间:
2020-06-11 19:47:18
阅读次数:
55
HashMap在JDK1.7是以数组加链表的形式组成,JDK1.8后新增了红黑树结构,当链表大于8并且容量大于64时,链表结构会转成红黑树结构。 JDK1.8 之所以会加入红黑树是因为当链表过长是会严重影响HashMap的性能,而红黑树具有快速增删改查的特点。 HashMap源码中包含了一下几个常量 ...
分类:
其他好文 时间:
2020-06-10 18:50:49
阅读次数:
59
按问题的形式来吧,这些大多是我自己总结的,如有错误请及时指正谢谢 1.你了解HashMap么,可以说说么? 首先,HashMap是一种数据结构,可以快速的帮我们存取数据。它的底层数据结构在1.7和1.8有了一些变化,1.7版本及以前他是数组+链表的形式,1.8及以后数组+链表+红黑树,如果链表长度大 ...
分类:
Web程序 时间:
2020-06-10 15:54:53
阅读次数:
71
HashMap源码分析和面试准备写在前面预备知识hash(哈希)是什么数组链表哈希表二叉树红黑树源码分析jdk1.7实现jdk1.8实现面试常见题目 写在前面本篇涉及到的知识面比较广,无论你是小白还是有经验人士,都可快速理解hashmap,目的是理解知识并能通过面试,一些过于深入和细节的东西不在这里... ...
分类:
其他好文 时间:
2020-06-09 20:57:31
阅读次数:
54