数据结构
常见数据结构包括线性结构(如动态数组、链表、栈、队列)和非线性结构(如优先级队列、哈希表、红黑树、跳表、B+树)。Java中ArrayList、LinkedList、HashMap、TreeMap等均为其实现。适用于查找、排序、调度等场景。详细内容可参考黑马《数据结构与算法》课程。
基础语法与面向对象
classDiagram
class Collection {<<interface>>}
class List {<<interface>>}
class Set {<<interface>>}
class Map {
<<interface>>
entrySet()*
keySet()*
values()*
}
Collection <|-- List
Collection <|-- Set
List <|.. ArrayList
List <|.. LinkedList
List <|.. Vector
Set <|.. HashSet
Map <|.. HashMap
Map <|..
零拷贝
零拷贝技术通过减少上下文切换和内存拷贝提升文件传输性能。传统方式需频繁系统调用与数据拷贝,开销大;零拷贝利用内核态直接将磁盘数据送至网卡,结合PageCache实现高效传输,适用于小文件场景,大幅降低CPU消耗,提高并发能力。
数组的检索效率
二分查找通过将有序数组不断折半,每次比较中间值与目标值,缩小搜索范围至一半,实现O(log n)高效检索,显著优于遍历的O(n),适用于大规模有序数据查询。
加密算法
加密算法主要分为对称加密(如AES、SM4)、非对称加密(如RSA、SM2)、哈希摘要(如SHA-2、SM3)、电子签名及密码存储技术。对称加密加解密快但需保密密钥;非对称加密使用公私钥,安全性高但速度慢;哈希摘要用于验证数据完整性,不可逆。各类算法在信息安全中各有应用场景。
03 | 哈希检索:如何根据用户 ID 快速查询用户信息?
本文介绍了哈希表的原理与实现。通过哈希函数将键转换为数组下标,利用数组的随机访问特性实现O(1)级查询。针对哈希冲突,讲解了开放寻址法和链表法两种解决方案,并分析其优劣。最后指出哈希表虽高效,但存在空间消耗大、无序等缺点,适用场景需权衡。