文章目录一、概述1、定义2、散列表查找步骤3、两个关键问题二、散列函数的构造方法1、直接定址法2、数字分析法3、平方取中法4、折叠法5、除留余数法——最常用的构造散列函数法6、随机数法三、处理散列冲突的方法——冲突是不能避免的1、开放定址法(线性探测法)(1)原理(2)代码实现2、链地址法3、两种处理冲突方法的比较(1)开放寻址法(2)链地址法 一、概述1、定义散列技术是在记录的存储位置和它的关
转载
2023-11-27 22:30:22
39阅读
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的程序设计概念后,重新设计
转载
2023-09-18 18:23:35
9阅读
JVM体系结构JVM是一种解释执行class文件的规范技术。JVM体系结构我翻译的中文图:中文图
类装载器子系统在JVM中负责装载.class文件(一种8位二进制流文件,各个数据项按顺序紧密的从前向后排列, 相邻的项之间没有间隙,经编译器编译.java源文件后生成,每个类(或者接口)都单独占有一个class文件)。
运行时数据区
方法区当JVM使用类装载器定位clas
转载
2023-07-24 15:55:45
68阅读
一. IOC概念控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它
转载
2023-11-10 17:32:55
37阅读
Mysql的结构ClientServer 连接器->解析器->优化器->执行器存储引擎:不同的存放位置,有不同的文件格式 1)innoDB: 聚簇索引,索引和数据放在一起 .frm 存放的是表结构 .lbd存放的数据文件和索引 mysql的innodb存储引擎默认情况下会把所有的数据文件放到表空间,不会为每个表保存单独的数据文件 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中有构造函数
转载
2024-01-11 17:17:08
95阅读
第一章: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+
转载
2023-10-07 14:36:58
59阅读
//返回底层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中的元素,是作为底层的Map的key,那么value
转载
2024-03-03 15:32:00
52阅读