文章目录一、概述1、定义2、散列表查找步骤3、两个关键问题二、散列函数构造方法1、直接定址法2、数字分析法3、平方取中法4、折叠法5、除留余数法——最常用构造散列函数法6、随机数法三、处理散列冲突方法——冲突是不能避免1、开放定址法(线性探测法)(1)原理(2)代码实现2、链地址法3、两种处理冲突方法比较(1)开放寻址法(2)链地址法 一、概述1、定义散列技术是在记录存储位置和它
HashTableJDK1.0引入,实现Map接口,用于存储K,V键值对集合类。 主要特点:Key不可为空、多线程安全、无序。底层采用数组 + 链表 结构。特点在源码基础上,查阅并结合其他文章资料,以介绍+提问形式,列出HashTable以下常见特点若干项。HashTable存储单元类型 使用Entry类型对象来保存内容。Entry类型中包括hash、key、value、next四部分。
转载 2023-08-10 17:04:51
19阅读
Hashtable是Java中键值对数据结构实现。您可以使用“键”存储和检索“值”,它是存储值标识符。显然“关键”应该是独一无二。java.util.Hashtable扩展Dictionary并实现Map。具有非空值对象可以用作键或值。Hashtable密钥必须实现hashcode()和equals()方法。在这篇文章最后,你会发现这个条件背后原因。通常,使用空构造函数 H
转载 2023-07-31 20:49:45
32阅读
(IdentityHashMap Class putAll() method)putAll() method is available in java.utilputAll()方法在java.util包中可用。 putAll() methodputAll()方法用于复制给定映射(m)中存在所有条目(键值对),并将其粘贴到此IdentityHashMap中。 putAll() methodputA
转载 2023-05-26 21:00:01
75阅读
Java HashMap 是非线程安全。在多线程条件下,容易导致死循环,具体表现为CPU使用率100%。因此多线程环境下保证 HashMap 线程安全性,主要有如下几种方法:   使用 java.util.Hashtable 类,此类是线程安全。 使用 java.util.concurrent.ConcurrentHashMap,此类是线程安全。 使用 java.util.Col
转载 2023-07-06 13:14:44
67阅读
有关Mysql底层存储结构前面已经写过一篇文章,当然这文章主要是基于听爪哇课程之后做笔记,过了一段时间之后有重新看一遍,就用通俗的话说一下自己对这一块理解。文章导图:Mysql上 | ProcessOn免费在线作图,在线流程图,在线思维导图一、概述现在我们讨论是Mysql存储,通常我们是在cpu中处理数据,但是由于成本以及存储特性最终数据保存又一定是要到磁盘。CPU运行速度与IO读取
转载 2023-08-11 15:56:11
85阅读
Redis 底层是用C语言进行编写,常用数据结构为动态字符串(SDS),InSet,Dict,ZipList QuikList SkipList动态字符串优点:1.动态字符串避开了传统字符串缺点,不可进行改变,它是可以改变;2.时间复杂度为O(1),时间复杂度小,性能好;3.支持动态扩容;4.减少内存分配次数;5.二进制安全;inset优点1.有序唯一元素存储;2.类型升级机制,节省内存
转载 2023-07-04 17:54:43
103阅读
HTML代码所表示文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新Web内容,更重要是,引入脚本语言使我们有了事件驱动软件开发环境。 (1)JavaScript简介 JavaScript原名叫LiveScript,是NetScape公司在引入Sun公司有关Java程序设计概念后,重新设计
JVM体系结构JVM是一种解释执行class文件规范技术。JVM体系结构我翻译中文图:中文图 类装载器子系统在JVM中负责装载.class文件(一种8位二进制流文件,各个数据项按顺序紧密从前向后排列, 相邻项之间没有间隙,经编译器编译.java源文件后生成,每个类(或者接口)都单独占有一个class文件)。 运行时数据区 方法区当JVM使用类装载器定位clas
一. IOC概念控制反转(Inversion of Control,缩写为IOC),是面向对象编程中一种设计原则,可以用来减低计算机代码之间耦合度。其中最常见方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建时候,由一个调控系统内所有对象外界实体将其所依赖对象引用传递给它
转载 2023-11-10 17:32:55
37阅读
Mysql结构ClientServer 连接器->解析器->优化器->执行器存储引擎:不同存放位置,有不同文件格式 1)innoDB: 聚簇索引,索引和数据放在一起 .frm 存放是表结构 .lbd存放数据文件和索引 mysqlinnodb存储引擎默认情况下会把所有的数据文件放到表空间,不会为每个表保存单独数据文件 2)MyISAM: 非聚簇索引,数据和索引单独存放
转载 2023-06-25 15:24:03
93阅读
MySQL底层大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据存储和提取。其架构模式是插件式,支持 InnoDB、MyI
转载 2023-09-13 17:22:08
59阅读
关于Python列表底层实现原理 目录关于Python列表底层实现原理引言一、空列表和空元组分别占多少内存空间?二、为什么列表和元组可以保存不同类型数据三、Python列表扩容机制四、列表和元组初始化时共有部分都有哪些内容五、列表和元组性能差异 引言今天学习极客时间上《Python核心技术与实战》课程,在看了第3课关于列表和元组深入剖析后,觉得自己以前对于列表元组理解还不够深入,于是
转载 2023-08-10 08:58:48
124阅读
前言 Java是目前用户最多、使用范围最广软件开发技术,Java技术体系主要由支撑Java程序运行虚拟机、提供各开发领域接口支持Java类库、Java编程语言及许许多多第三E方Java框架(如Spring、 MyBatis等) 构成。在国内,有关Java类库API、Java语言语法及第三方框架技术资料和书籍非常丰富,相比而言,有关Java虚拟机资料却显得异常贫乏。附面试思维导图(仅供
转载 2023-08-05 01:45:46
325阅读
        首先介绍一下axios,axios是目前比较流行一个js库,是一个基于promise网络数据请求库,主要用于发送网络数据请求,从后台服务器上获取数据返回给前端。        学习JS猿友都应该知道,在JS中有构造函数
第一章:Python入门一、语言什么是语言:人与人之间沟通计算机语言:计算机语言,即人和计算机之间沟通语言。按照级别分类:机器语言:最底层,最低级语言,只能识别0/1,电平信号汇编语言:计算机指令(add a-b, sub 2 1)高级语言: C、C++、Java、Python,偏向人语言计算机语言执行方式:编译执行:解释执行:Python,相当于翻译官(解释器IDE),好处---以跨
转载 2023-07-31 13:12:11
116阅读
一、Docker底层实现 Docker容器本质上是宿主机上进程 ,核心技术包括Linux上命名空间(namespace)、控制组(cgroups)、UnionFS(联合文件系统)和容器格式(Container format)。Docker通过namespace实现了资源隔离,通过cgoups实现了资源限制,通过写时复制机制实现了高效文件操作。 容器就是一个与宿主机系统共享内核但与系统中
转载 2023-07-25 20:38:08
5阅读
c语言主要用于底层和驱动,编译器开发c语言高效底层,主要用于底层开发,比如一些系统驱动;unix,linux系统和其上相关应用开发;有很多语言比如python、php、perl、ruby等都是c语言开发这些语言核心库,编译器等开发都是c语言。比如PHP7开发,就基本上全是c语言。还有就是如果某些应用如果对性能要求严格,那这部分可以用c写,然后高级语言调用。c++底层、图像处理、游戏c+
//返回底层viewController方法--- (UIViewController*)GetViewController:(UIView*)uView{ for (UIView* next = [uView superview]; next; next = next.superview) { UIResponder* nextResponder = [next nextResponder]; if ([nextResponder isKindOfClass:[UIViewController class]]) { return (U...
转载 2013-08-27 19:12:00
94阅读
2评论
Java基础20-Set系列集合底层实现Set底层实现是什么? 1、HashSet :底层是 HashMap new了一个hashmap2、TreeSet : 底层是TreeMap3、LinkedHashSet:底层是 LinkedHashMapSet添加元素时用add(元素),而Map添加元素put(key,value)。 发现添加到Set中元素,是作为底层Mapkey,那么value
转载 2024-03-03 15:32:00
52阅读
  • 1
  • 2
  • 3
  • 4
  • 5