Java 数据结构 HashMap 源码解读:如何设计工业级的散列表 [toc] __数据结构与算法目录()__ 在 "Java 数据结构 散列表原理" 一文中,提到评价一个散列表的标准有三个:散列函数、散列冲突、加载因子(动态扩容)三个指标。那像 HashMap 这样工业级的散列表应该具有哪些特性 ...
分类:
编程语言 时间:
2020-03-10 14:10:19
阅读次数:
70
jdk:1.8 一、先看看ArrayList类的整体概述, ArraList是基于动态数组实现的一种线性列表,这种基于动态数组的好处就是索引比较快,时间复杂度为O(1);但是对数据修改比较慢,因为需要移动数据,移动数据的过程需要消耗大量的时间 因此我们在平时的使用的过程中,需要结合我们的具体业务需求 ...
分类:
其他好文 时间:
2020-03-02 10:43:14
阅读次数:
62
JDK Byte Buffer的缺点:长度是固定的,不能动态扩容,API使用复杂,因此Netty封装了自己ByteBuf,Bytebuf有三个重要属性:Capacity容量、readerIndex读取位置和writerIndex写入位置,提供两个指针来支持顺序读写操作.同时三者满足如下关系:0<=r ...
分类:
Web程序 时间:
2020-02-14 18:05:42
阅读次数:
100
可能从大致印象上 Ingress 就是能利用 Nginx、Haproxy 啥的负载均衡器暴露集群内服务的工具;那么问题来了,集群内服务想要暴露出去面临着几个问题:众所周知 Kubernetes 具有强大的副本控制能力,能保证在任意副本(Pod)挂掉时自动从其他机器启动一个新的,还可以动态扩容等,总之... ...
分类:
其他好文 时间:
2020-01-27 12:16:10
阅读次数:
86
LVM概念: 它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(l ...
分类:
其他好文 时间:
2020-01-03 10:46:19
阅读次数:
98
JDK的ByteBuffer的缺点: 1.final byte[] hb;这是JDKde ByteBuffer对象中用于存储数据的对象声明;可以看到,其字节数组是被声明为final的,也就是长度是固定不变的,一旦分配好后不能动态扩容与收缩;而且当待存储的数据字节很大时就很有可能出现IndexOutO ...
分类:
编程语言 时间:
2019-11-24 21:11:56
阅读次数:
94
1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图)。 头文件 定义 元素访问 定义 元素访问 定义 内容访问 常用函数 | 函数 | 说明 | | | | | operator+= | 字符串 ...
分类:
编程语言 时间:
2019-11-24 11:51:29
阅读次数:
99
首先,必须确保其他分区有足够的空间用来分给根目录/。可以使用以下命令查看:$sudodf-h可以看到,这里home目录空闲的空间还很大,因此,我们将home的空间分给根目录一些。扩容根目录的思路如下:将/home文件夹备份,删除/home文件系统所在的逻辑卷,增大/文件系统所在的逻辑卷,增大/文件系统大小,最后新建/home目录,并恢复/home文件夹下的内容。备份/home分区内容这里需要选一个
分类:
移动开发 时间:
2019-11-10 21:03:41
阅读次数:
115
C动态内存分配 数组是固定数量的值的集合,在声明数组的大小之后,无法更改。有时,数组大小可能不够,就需要动态扩容。解决此问题,可以在运行时手动分配内存。这在C编程中称为 动态内存分配 。 动态分配存储器涉及到的库函数有 这些函数在``头文件中定义。 1.malloc() 名称“ malloc”代表内 ...
分类:
编程语言 时间:
2019-10-27 13:02:13
阅读次数:
111
连接:https://blog.csdn.net/u013431916/article/details/80548069 1. 首先,必须确保其他分区有足够的空间用来分给根目录/。可以使用以下命令查看: 2. ...
分类:
移动开发 时间:
2019-10-20 13:23:44
阅读次数:
173