avatar
文章
79
标签
79
分类
27
Home
File
Label
Classification
List
  • Music
  • Movie
  • Picture
Message board
Link
About
JasmineRain's blog
搜索
Home
File
Label
Classification
List
  • Music
  • Movie
  • Picture
Message board
Link
About

JasmineRain's blog

HashMap是如何解决哈希冲突
发表于2025-09-15|Java|HashMap
哈希冲突HashMap是一种键值对的存储数据结构,通过哈希函数把key映射到数组下标(bucket),哈希冲突就是不同的key经过哈希函数后得到相同的数组下标,因为数组有限,而key无限,所以冲突是不可避免的 HashMap常见的解决哈希冲突的方法拉链法(Separate chaining/链地址法)每个数组下标不直接存储单个元素,而是存储一个链表或链式结构,当key冲突时,放到这个链表中。 查找时,根据key的哈希值找到数组的下标,遍历链表,比较key是否相等 优点 简单易实现 当冲突少时,效率很高 缺点 链表过长时查找效率下降(后续Java8+用红黑树替换链表提升性能) 地址开放法(Open Addressing)所有元素都存储在数组中,没有链表。当冲突发生时,寻找数组中下一个空槽位存放元素。常用探查方式:线性探查(下一个空槽依次查找)、二次探查(查找间隔平方递增,减少群聚现象)、双哈希(用第二个哈希函数计算步长) 优点 节约内存,不需要链表指针 缺点 数组负载因子过高时,插入/查找效率下降 再哈希法当哈希冲突严重时,通过扩...
最优化理论与方法
发表于2025-09-12|专业选修课
1 线性规划与整数规划1.1 最优化基本要素 将实际问题抽象地用数学模型来描述,包括选择优化变量,确定目标函数,给出约束条件 对数学模型进行必要的简化,并采用适当的最优化方法来求解数学模型 目标函数、优化变量、约束条件是最优化问题数学模型的三个基本要素 优化变量一个实际的优化方案可以用一组参数来表示。在这些参数中,有些根据要求在优化过程中始终保持不变,这类参数为常量。另一些参数的取值则需要在优化过程中调优和优选,一直处于变化的状态,这类变量称为优化变量。优化变量必须是独立的参数。 n维空间,n维欧氏空间 因为优化变量xi(i=1,2,⋅⋅⋅,n)x_i(i=1,2,···,n)xi​(i=1,2,⋅⋅⋅,n)都是实数,所以这n个独立变量组成的n维向量空间是一个n维实空间,用RnR^nRn表示。 优化变量的个数(优化问题的维数)称为自由度,个数越多,自由度越高 目标函数目标函数是用优化变量来表示的优化目标的数学表达式,是方案好坏的评价标准,故又称为评价函数。目标函数通常表示为 f(x)=f(x1,x2,⋅⋅⋅,xn) f(x)=f(x_1,x_2,···,x_n) f(x)=f(...
数据库
发表于2025-09-12|数据库|数据库
数据库概念 数据库:一个长期存储、有组织的、可共享的数据集合 数据库管理系统:用于创建、读取、更新、删除和管理数据库的软件(如MySQL、PostgreSQL、MongoDB、Redis、ClickHouse等) 两层关系:应用<–>DBMS<–>存储(磁盘/SSD、缓存) 数据库分类与典型场景 关系型数据库:表、行、列、支持SQL、事务(ACID)。典型:MySQL、PostgreSQL、Oracle。适合OLTP(在线事务处理) Key-Value存储:超快速读写,常做缓存/会话(Redis、Memcached) 文档数据库:JSON/BSON文档,灵活schema(MongoDB)。适合半结构化数据。 列式/宽式数据库:面向大规模分析、列存储(Cassandra、HBase、ClickHouse)。适合OLAP/时序/日志分析 图数据库:关系密集型图查询(Neo4j、JanusGraph) 时序数据库:时间序列优化(InfluxDB、Prometheus TSDB) 搜索引擎:全文搜索与倒...
计算机网络基础
发表于2025-09-11|计算机网络|计算机网络
概念与分层模型网络的概念网络是现代软件系统的基础(分布式系统、微服务系统、云、流媒体、物联网都离不开它) 两个常见的模型 OSI七层模型:(物理、数据链路、网络、传输、会话、表示、应用),便于概念教学所以使用该分层 TCP/IP(四/五层)模型:(链路/网络接口、网络/Internet、传输/Host-to-Host、应用),更贴近实际协议栈,(IP/TCP/UDP/HTTP) 对照表:1.物理层->网线/光纤/无线2.数据链路层->Ethernet、MAC、ARP、交换机3.网络层->IP(IPv4/IPv6)、路由、ICMP4.传输层->TCP/UDP、端口、流控、拥塞控制5.应用层->DNS、HTTP、TLS、SMTP、FTP、SSH 物理层与链路层(从线缆到帧) 物理层:介质(双绞线、光纤、同轴)、信号编码、带宽、噪声、衰减、抖动(jitter) 链路层(数据帧): MAC地址(48bit,厂商前缀+唯一接口I...
数字图像处理
发表于2025-09-11|专业选修课|数字图像处理
1.1图像及其分类基本概念 图:是物体反射或投射电磁波的分布 像:是人的视觉系统对接受的图信息在大脑中形成的印象 图像:是图和像的结合。具体来说,就是用各种观测系统以不同形式和手段观测客观世界而获得的、可以直接或间接作用于人的视觉系统而产生的视知觉实体 图像处理:是对图形信息进行加工以满足人的视觉或应用需求的行为。处理的方法通常有:模拟图像处理、数字图像处理、光电结合处理。 模拟图像处理:也称光学图像处理,它是利用光学透镜或光学照相(例如:胶片照相机)方法对模拟图像进行的处理,其实时性强、速度快、处理信息量大、分辨率高,但是处理精度差,难有判断功能 数字图像处理:利用计算机技术或其他数字技术,对图像信息进行某些数字运算和各种加工处理,以改善图像的视觉效果和提高图像实用性的技术 光电结合处理:用光学方法完成运算量巨大的处理(如频谱变换等),再用计算机对光学处理结果(如频谱)进行分析判读等处理。该方法是前两种的有机结合,它集结了两者的优点 图像处理的基本特征:系统的输入和输出都是图像。核心是在不改变图像核心内容结构的前提下,改善图像质量或提取基础特征 计算机中图像的表示...
一些关于Redis
发表于2025-09-10|Redis|Redis
Redis简单介绍Redis是基于内存的高性能key-value存储(支持多种数据结构:string、Hash、List、Set、Sorted Set、Bitmap、HyperLogLog、Stream等) 内存读写极快,支持持久化(RDB/AOF)、单线程处理命令(命令执行是原子性的)、支持复制、哨兵高可用和Cluster分片 常用场景:缓存、会话、限流、计数器、排行榜、消息队列、分布式锁等 持久化:RDB(快照):低开销,可能丢数据点(适合备份);AOF(命令追加):更耐久但文件更大、更慢些(可配置fsync策略) 内存管理/驱逐策略: maxmemory用来限制内存;当满时按maxmemory-policy决定如何驱逐:noeviction、allkeys-lru、volatile-lru、volatile-ttl、allkeys-random等,选allkeys-lru常用于缓存场景 原子性/事务/脚本:单命令原子:MULTI/EXEC是事务队列(不保证隔离);Lua脚本在Redis内部执行,整体原子且性能好(常用于实现安全释放...
一些关于MySQL
发表于2025-09-09|MySQL|MySQL
MySQL基础概念MySQL是一个关系型数据库管理系统(RDBMS),它存储的数据是结构化的,使用表来存储信息,支持SQL(机构化查询语言)来操作数据 概念 说明 数据库 数据的集合 表 数据库中的具体存储机构 行 表中的一条记录 列 表的字段 主键 唯一标识一行记录 外键 关联另一张表的字段 索引 加速数据查询的工具 MySQL数据类型数值类型 类型 描述 INT 整数 BIGINT 大整数 DECIMAL 精确小数 FLOAT/DOUBLE 浮点数 字符串类型 类型 描述 CHAR(n) 固定长度 VARCHAR(n) 可变长度 TEXT 长文本 日期时间类型 类型 描述 DATE 日期(YYYY-MM-DD) DATETIME 日期时间 TIMESTAMP 时间戳,自动记录修改时间 基本SQL操作创建表1234567CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, usernam...
Gin-Echo
发表于2025-09-08|Go|Gin•Echo
它们是什么 Gin:轻量、性能导向、API风格接近Martini,但实现上更高性能(使用高效路由/最小分配等)。适合需要高吞吐与中等复杂度的服务。以最少的开销+开发效率取胜 Echo:语言简洁、功能齐全、可拓展性好,内置很多中间件(CORS、JWT、静态、日志等),上手快,适合快速构建REST服务。以完整性+可拓展性取胜 框架核心对比(要点) 路由:Gin使用高效的redix/tree路由实现(零分配/fast),Echo也有高性能路由实现。两者在典型场景差异很小。 中间件链:两者都采用链式中间件(Request->中间件1->中间件2->Handler->返回)。中间件顺序很重要(认证放在路由前面、错误恢复放最外层等) 绑定与验证:Gin原生支持binding标签并在Bind时触发验证(内部使用go-playground/validator);Echo通常配合go-playground/validator,通过实现echo.Validator把验证接入。推荐统一使用github.com/...
Dijkstra算法
发表于2025-09-08|Algorithm|Dijkstra•cpp•go
它解决了什么问题在大多数最短路径问题中,Dijkstra算法是最常用的、效率最高的。它是一种“单源”最短路径的算法,一次计算能够得到从一个起点到其他所有点的最短距离长度、最短路径的途径点 输入为带权图G=(V,E),边权非负(有负权边考虑Bellman-Ford/SPFA/Johnson),给定起点,适用于有向图和无向图(无向图就加双向边) 核心思想(贪心+松弛)维护每个点的“目前已知最短距离”dist[],反复从未确定的点里选出dist最小者u(用最小堆加速),将它永久确定;然后用u去尝试”放松”所有出边(u,v,w):如果dist[v]>dist[u]+w,就更新之,并记录parent[v]=u以便还原路径 因为所有边权非负,当前dist最小的未确定点u再走任何边其代价只会增加,不可能通过未确定的其他点得到更短的代替路径,故一旦选出就最优(贪心选择性质) 实现细节(邻接表+最小堆) 数据结构:adj[u]存(v,w),priority_queue堆按(dist,node)升序 常量:INF取很大(如4e18),避免溢出 复杂度:用二叉堆:O...
Go的并发
发表于2025-09-06|Go|并发
Goroutine轻量级线程,goroutine是Go运行时(runtime)管理的协程,比操作系统线程更轻量 初始栈空间只有几kb,会按需自动增长 Go runtime提供M:N调度模型,N个Goroutine映射到M个操作系统线程 在函数调用前加go关键词启动 12345678910111213141516171819package mainimport ( "fmt" "time")func work(id int){ for i:=0;i<3;i++{ fmt.Printf("Worker %d: %d\n",id,i) time.Sleep(time.Millisecond*500) }}func main(){ go work(1) //开启一个Goroutine go work(2) //再开一个Goroutine time.Sleep(2*time.Second)//主协程等待&#...
1…678
avatar
JasmineRain
Better Call JasmineRain
文章
79
标签
79
分类
27
Follow Me
公告
Welcome to my Blog
最新文章
Cookie和Session的区别2026-01-13
HTTP和HTTPS的区别2026-01-13
乐观锁和悲观锁2026-01-12
HTTP状态码2026-01-12
python中的深拷贝和浅拷贝2026-01-12
分类
  • Algorithm3
  • DataStruct2
  • Go3
  • Java2
  • Linux1
  • MySQL2
  • Redis2
  • SQL2
标签
Merge sort 红黑树 突变测试 MySQL 位运算 网络安全 ssl 白盒测试 tls 马原 契约测试 测试类型 数据库 压力测试 黑盒测试 数字图像处理 锁机制 LRU 计算机网络 JUnit https 网络协议 JaCoCo DomReady 并发 99分位响应时间 质数 多线程 指针和引用 八股 计网 测试 冒烟测试 Array 浸泡测试 java python go 健全性测试 拷贝
归档
  • 一月 2026 6
  • 十二月 2025 8
  • 十一月 2025 37
  • 十月 2025 4
  • 九月 2025 16
  • 八月 2025 8
网站信息
文章数目 :
79
本站总字数 :
86.2k
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By JasmineRain框架 Hexo 7.3.0|主题 Butterfly 5.4.3
搜索
数据加载中