Java 集合体系深度解析面试篇
一、Java 集合体系核心架构与高频考点
1. 集合体系架构图(大厂必问)
Java集合框架
├─ Collection(单列集合)
│ ├─ List(有序、可重复)
│ │ ├─ ArrayList(动态数组,随机访问快)
│ │ ├─ LinkedList(双向链表,插入删除快)
│ │ └─ Vector(线程安全,已过时)
│ ├─ Set(无序、唯一)
│ │ ├─ HashSet(哈希表,插入/查询O(1))
│ │ ├─ TreeSet(红黑树,有序)
│ │ └─ LinkedHashSet(链表维护顺序)
│ └─ Queue(队列,FIFO)
│ ├─ LinkedList(双向链表实现队列)
│ └─ PriorityQueue(堆结构,优先级排序)
└─ Map(键值对)├─ HashMap(哈希表,非线程安全)├─ TreeMap(红黑树,键有序)├─ LinkedHashMap(链表维护插入顺序)└─ Hashtable(线程安全,已过时)
二、List 体系高频面试题
1. ArrayList vs LinkedList
真题:
- ArrayList 和 LinkedList 的底层数据结构?插入删除性能差异?
- ArrayList 扩容机制是怎样的?为什么默认初始容量是 10?
源码解析:
// ArrayList扩容逻辑(JDK1.8)
private void grow(int minCapacity) {int oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1); // 扩容1.5倍if (newCapacity - minCapacity < 0) newCapacity = minCapacity;elementData = Arrays.copyOf(elementData, newCapacity);
}// LinkedList节点结构
private static class Node<E> {E item;Node<E> next;Node<E> prev;Node(Node<E> prev, E element, Node<E> next) {this.item = element;this.next = next;this.prev = prev;}
}
面试回答:
- 数据结构:
ArrayList 基于动态数组,元素连续存储;LinkedList 基于双向链表,每个节点包含前驱和后继指针。- 性能差异:
- 随机访问:ArrayList 通过索引直接访问(O (1)),LinkedList 需遍历链表(O (n));
- 中间插入 / 删除:ArrayList 需移动元素(O (n)),LinkedList 仅需修改指针(O (1),但定位节点需 O (n))。
- 扩容机制:
初始容量 10(历史原因,兼容旧版本),扩容时按 1.5 倍扩展(位运算oldCapacity >> 1
),减少扩容次数,提升性能。
2. Vector 为什么被淘汰?
回答:
- 线程安全:通过
synchronized
实现,锁粒度大(整个数组),并发性能差;- 替代方案:
- 单线程用 ArrayList,多线程用
Collections.synchronizedList(new ArrayList<>())
(锁对象更细),或 JUC 的CopyOnWriteArrayList
(适合读多写少场景)。
三、Set 体系高频面试题
1. HashSet 如何保证元素唯一?
源码解析:
// HashSet的add方法(底层是HashMap)
private transient HashMap<E, Object> map;
private static final Object PRESENT = new Object();public boolean add(E e) {return map.put(e, PRESENT) == null; // 利用HashMap的键唯一特性
}
面试回答:
HashSet 底层基于 HashMap 实现,元素作为键存储,值统一为
PRESENT
。添加元素时,通过以下步骤保证唯一:
- 计算元素的哈希值(
hashCode()
),确定存储桶;- 若桶内无元素或元素相等(
equals()
),则不添加;- 若桶内是链表 / 红黑树,遍历比较
equals()
,存在则忽略。
2. TreeSet 排序原理
回答:
TreeSet 基于 TreeMap 实现,元素作为键存储,利用红黑树的有序性。排序方式有两种:
- 自然排序:元素实现
Comparable
接口,重写compareTo()
;- 定制排序:创建 TreeSet 时传入
Comparator
,重写compare()
。
插入时通过红黑树的旋转保持平衡,时间复杂度 O (log n)。
四、Map 体系高频面试题(核心中的核心)
1. HashMap 底层实现(1.7 vs 1.8 对比)
真题:
- HashMap 的 put 过程是怎样的?1.8 做了哪些优化?
- 为什么链表长度超过 8 转为红黑树?为什么阈值是 8?
源码解析(JDK1.8 put 流程):
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) {Node<K,V>[] tab; Node<K,V> p; int n, i;if ((tab = table) == null || (n = tab.length) == 0)n = (tab = resize()).length; // 初始化或扩容if ((p = tab[i = (n-1) & hash]) == null)tab[i] = newNode(hash, key, value, null); // 桶空,直接插入else {if (p instanceof TreeNode) // 红黑树节点p = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value);else { // 链表节点for (int binCount = 0; ; ++binCount) {if ((e = p.next) == null) { // 插入链表尾部p.next = newNode(hash, key, value, null);if (binCount >= TREEIFY_THRESHOLD - 1) // 链表长度≥8转红黑树treeifyBin(tab, hash);break;}if (p.hash == hash && Objects.equals(p.key, key)) break; // 键重复,覆盖值p = e;}}}return null;
}
面试回答:
1.7 vs 1.8 区别:
特性 JDK1.7 JDK1.8 数据结构 数组 + 链表(头插法) 数组 + 链表 + 红黑树(尾插法) 哈希冲突处理 链表,无红黑树 链表长度≥8 且数组长度≥64 转红黑树 扩容机制 2 倍扩容,转移链表顺序反转 2 倍扩容,保持链表顺序 1.8 优化点:
- 红黑树:链表长度超过 8(
TREEIFY_THRESHOLD=8
)且数组长度≥64 时转红黑树,查询时间从 O (n) 降至 O (log n);- 尾插法:避免 1.7 头插法在多线程扩容时的环形链表风险(但仍非线程安全);
- 哈希计算:
(n-1) & hash
替代 1.7 的hash % n
,提升散列均匀性。
2. ConcurrentHashMap 如何实现线程安全?
回答:
- JDK1.7:
分段锁(Segment
数组),每个Segment
是独立的 HashMap,锁粒度为段(默认 16 段),并发度 16。- JDK1.8:
- CAS+Synchronized:对每个桶的首节点加
synchronized
,锁粒度更小(仅首节点);- 红黑树:链表转红黑树提升并发下的查询性能;
- 扩容机制:通过
transfer
方法实现无锁扩容,支持并发迁移节点。- 适用场景:
高并发场景下比 Hashtable 性能提升显著,适合读多写少场景(写操作需加锁)。
五、Queue 与特殊集合高频题
1. PriorityQueue 如何实现优先级排序?
源码解析:
// 小根堆实现,父节点≤子节点
private void siftUp(int k, E x) {while (k > 0) {int parent = (k - 1) >>> 1; // 计算父节点索引Object e = queue[parent];if (comparator.compare(x, (E) e) >= 0) break; // 父节点更小,停止上浮queue[k] = e;k = parent;}queue[k] = x;
}
回答:
PriorityQueue 基于堆(默认小根堆),元素通过自然顺序或
Comparator
排序。插入时上浮调整堆结构,删除堆顶元素后下沉调整,时间复杂度均为 O (log n)。应用场景:任务调度(如线程池中的任务队列)、Top-N 问题(取最大 / 最小元素)。
2. 集合中的 fail-fast 机制
回答:
- 概念:当集合结构被修改时(如增删),迭代器检测到
modCount
变化,抛出ConcurrentModificationException
。- 支持集合:ArrayList、HashMap、HashSet 等非线程安全集合;
- 原理:迭代器维护
expectedModCount
,每次操作检查是否与集合的modCount
一致;- 应用:快速发现并发修改错误,避免脏读,但无法保证绝对线程安全(适合单线程迭代场景)。
六、大厂面试真题与陷阱题
1. HashMap 的 key 可以是 null 吗?为什么?
回答:
可以。HashMap 允许 key 为 null,且只能有一个 null 键(唯一性)。原因:
- put 时,若 key 为 null,会调用
putForNullKey(value)
单独处理,存储在数组的第一个桶;- get 时,key 为 null 直接返回
table[0]
链表中匹配的 value。
注意:Hashtable 不允许 key/value 为 null(会抛出 NPE)。
2. 如何让 HashMap 按插入顺序排序?
回答:
使用
LinkedHashMap
(HashMap 子类,维护双向链表记录插入顺序):Map<String, Integer> map = new LinkedHashMap<>(); map.put("a", 1); map.put("b", 2); // 遍历顺序与插入顺序一致
原理:每个节点增加
before
和after
指针,记录插入顺序,牺牲少量空间换取顺序遍历。
3. MVC vs MVVM 在 Android 中的实践
对比表格(结合面试高频点):
对比项 | MVC | MVVM |
---|---|---|
耦合度 | Activity 兼具 View 和 Controller,代码臃肿 | View 与 ViewModel 解耦,Activity 仅作 View |
数据绑定 | 手动更新 UI(findViewById+setXXX) | 自动数据绑定(DataBinding/LiveData) |
线程安全 | 需手动处理子线程更新 UI | ViewModel 通过 LiveData 自动切主线程 |
测试难度 | 难(依赖 UI 组件) | 易(ViewModel 可独立测试) |
典型问题 | Activity 泄漏、回调地狱 | 无(ViewModel 生命周期感知) |
实战回答:
在 Android 中,MVVM 通过 ViewModel 和 LiveData 实现:
- ViewModel 负责业务逻辑和数据(不持有 Activity 引用);
- LiveData 感知生命周期,数据变化自动更新 UI(通过 Observer);
- DataBinding 减少 findViewById 和手动设置数据,降低耦合。
优势:解决 MVC 中 Activity 臃肿问题,提升可测试性,避免内存泄漏(ViewModel 随 Activity 销毁而销毁)。
七、集合选择指南(面试加分项)
场景 | 推荐集合类 | 原因 |
---|---|---|
频繁随机访问 | ArrayList | 数组索引访问 O (1) |
频繁插入删除(首尾) | LinkedList | 头尾操作 O (1) |
唯一无序集合 | HashSet | 哈希表实现,插入 / 查询 O (1) |
唯一有序集合 | TreeSet/LinkedHashSet | 红黑树 / 链表维护顺序 |
键值对无序存储 | HashMap | 性能最优(非线程安全) |
键值对有序存储 | TreeMap/LinkedHashMap | 红黑树 / 链表维护键顺序 |
高并发场景 | ConcurrentHashMap | CAS+Synchronized,锁粒度小 |
先进先出队列 | LinkedList/ArrayDeque | 双向链表支持高效头尾操作 |
优先级队列 | PriorityQueue | 堆结构实现优先级排序 |
八、总结:大厂面试核心考点
- 数据结构:ArrayList(动态数组)、LinkedList(双向链表)、HashMap(哈希表 + 红黑树)的底层实现;
- 性能对比:插入 / 删除 / 查询的时间复杂度,扩容机制(如 ArrayList 的 1.5 倍扩容);
- 线程安全:Vector/Hashtable 的缺陷,ConcurrentHashMap 的优化(分段锁→CAS+Synchronized);
- 特殊场景:Set 的唯一性实现(HashSet 的 HashMap 底层)、Queue 的优先级排序(PriorityQueue 的堆结构);
- 架构模式:MVC 与 MVVM 在 Android 中的应用,ViewModel 如何解耦 View 与 Model。
相关文章:
Java 集合体系深度解析面试篇
一、Java 集合体系核心架构与高频考点 1. 集合体系架构图(大厂必问) Java集合框架 ├─ Collection(单列集合) │ ├─ List(有序、可重复) │ │ ├─ ArrayList(动态数组,随机…...
websocketd 10秒教程
websocketd 参考地址:joewalnes/websocketd 官网地址:websocketd websocketd简述 websocketd是一个简单的websocket服务Server,运行在命令行方式下,可以通过websocketd和已经有程序进行交互。 现在,可以非常容易地构…...
PCA降维
主成分分析(Principal Component Analysis,PCA)降维是一种广泛使用的无监督机器学习技术,主要用于数据预处理阶段,其目的是在尽量保留数据重要信息的前提下,减少数据的维度。 PCA 的原理 PCA 的核心思想…...
【计算机视觉】OpenCV实战项目: opencv-text-deskew:实时文本图像校正
opencv-text-deskew:基于OpenCV的实时文本图像校正 一、项目概述与技术背景1.1 核心功能与创新点1.2 技术指标对比1.3 技术演进路线 二、环境配置与算法原理2.1 硬件要求2.2 软件部署2.3 核心算法流程 三、核心算法解析3.1 文本区域定位3.2 角度检测优化3.3 仿射变换…...
具身智能时代的机器人导航和操作仿真器综述
系列文章目录 前言 导航和操作是具身智能的核心能力,然而在现实世界中训练具有这些能力的智能体却面临着高成本和时间复杂性。因此,从模拟到现实的转移已成为一种关键方法,但模拟到现实的差距依然存在。本调查通过分析以往调查中忽略的物理模…...
Go语言Stdio传输MCP Server示例【Cline、Roo Code】
Go语言 Stdio 传输 MCP Server 示例 AI 应用开发正处于加速发展阶段,新技术和新方法不断涌现。Model Context Protocol (MCP) 作为一个开放标准,正在改变 AI 应用与数据源和工具集成的方式。 Go-MCP 是一个 MCP 协议的 GO 实现&…...
Xcode16.3配置越狱开发环境
首先先在https://developer.apple.com/xcode/resources/ 这里面登陆Apple账号,然后访问url下载 https://download.developer.apple.com/Developer_Tools/Xcode_16.3/Xcode_16.3.xip 1、安装theos https://theos.dev/docs/installation-macos 会安装到默认位置~/th…...
AWS IoT Core与MSK跨账号集成:突破边界的IoT数据处理方案
随着企业规模的扩大和业务的复杂化,跨账号资源访问成为云架构中的一个常见需求。本文将深入探讨如何实现AWS IoT Core与Amazon MSK(Managed Streaming for Apache Kafka)的跨账号集成,为您的IoT数据处理方案开辟新的可能性。无论您是正在构建多账号架构,还是需要整合不同部门的…...
【Python 列表(List)】
Python 中的列表(List)是最常用、最灵活的有序数据集合,支持动态增删改查操作。以下是列表的核心知识点: 一、基础特性 有序性:元素按插入顺序存储可变性:支持增删改操作允许重复:可存储重复元…...
在另一个省发布抖音作品,IP属地会随之变化吗?
你是否曾有过这样的疑惑:出差旅游时在外地发布了一条抖音视频,评论区突然冒出“IP怎么显示xx省了?”的提问?随着各大社交平台上线“IP属地”功能,用户的地理位置标识成为公开信息,而属地显示的“灵敏性”也…...
在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程
在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程 资源宝分享:https://www.httple.net/154301.html 一次性打包涵盖200个常用工具!无论是日常的图片处理、文件格式转换,还是实用的时间…...
D720201 PCIE 转USB HUB
1. 启动时出现了下面错误 [ 4.682595] pcieport 0004:00:00.0: Signaling PME through PCIe PME interrupt [ 4.684939] pci 0004:01:00.0: Signaling PME through PCIe PME interrupt [ 4.691287] pci 0004:01:00.0: enabling device (0000 -> 0002) [ 5.2962…...
QT事件介绍及实现字体放大缩小(滚轮)
使用update是为了回调paintEvent这个事件函数 pic.load是加载一张图片 setfixedsize(pic.siez())是为了把按键的矩形区域变成和pic一样大 painter.drawPixmap(rec(),pic)就是在按键的矩形区域画一个pic emit clicked();是用来发送clicked信号的,当然你也可以在事…...
p2p虚拟服务器
ZeroTier Central ✅ 推荐工具:ZeroTier(免费、稳定、跨平台) ZeroTier 可以帮你把多台设备(无论是否跨网)加入一个虚拟局域网,彼此间可以像在同一个 LAN 中通信,UDP 视频、文件传输、SSH 等都…...
高尔夫基本知识及规则·棒球1号位
高尔夫与棒球的结合看似跨界,但两者在规则、策略和运动哲学上存在有趣的关联性。以下从五个角度进行对比分析,揭示它们的异同与潜在联系: 一、核心目标的对比性结合 高尔夫:以最少击球次数完成18洞(标准杆72杆左右&am…...
数据结构(1)复杂度
一、数据结构概要 1.数据结构 数据结构是计算机存储、组织数据的方式,是数据相互之间存在一种或者多种特定关系的集合。没有一种单一的数据结构可以解决所有问题,因此要学习多种多样的数据结构。如:线性表、图、树等。 2.算法 算法其实就…...
多分类问题softmax传递函数+交叉熵损失
在多分类问题中,Softmax 函数通常与交叉熵损失函数结合使用。 Softmax 函数 Softmax 函数是一种常用的激活函数,主要用于多分类问题中。它将一个实数向量转换为概率分布,使得每个元素的值在 0 到 1 之间,且所有元素的和为 1。 …...
Java如何获取电脑分辨率?
以下是一个 Java 程序示例,用于获取电脑的主屏幕分辨率: import java.awt.*; public class ScreenResolutionExample { public static void main(String[] args) { // 获取默认的屏幕设备 GraphicsDevice device GraphicsEnvironm…...
【NextPilot日志移植】logged_topics.cpp解析
📘 PX4 Logger 模块注册 uORB 主题、实际订阅与数据采集流程 🧭 目的与背景 在 PX4 飞控中,日志记录模块 logger 需要记录多个 uORB 主题的数据(如 IMU、GPS、姿态等)。为了系统统一管理这些记录需求,log…...
CSS vertical-align
这里的小空白就是为了和基线对齐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&quo…...
“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新
本次更新围绕用户在实际项目中对平台的理解和管理体验进行了多项优化。 “工作区”升级为“磁盘”、及其管理优化 平台“工作区”概念正式更名为“磁盘”,突出其存储功能。原有以目录代称的存储区域划分同步更名,其中“work目录”更改为“个人磁盘”&am…...
mac 电脑如何打开剪切板
mac 不像 Windows 拥有官方的剪贴板应用。所以我们需要使用官方商店中的第三方应用实现剪切板管理的功能。 打开苹果电脑上的 App Store,下载 PasteMe 或 Paste 等复制历史记录的管理工具。(PasteMe 为买断制18元,Paste为订阅制,…...
信息系统项目管理师-软考高级(软考高项)2025最新(十二)
个人笔记整理---仅供参考 第十二章项目质量管理 可能考论文??? 12.1管理基础 12.2项目质量管理过程 12.3规划质量管理 12.4管理质量 12.5控制质量...
Java、javax 和 Jakarta有什么区别?
在 Java 开发中,我们经常会看到 java、javax 和 jakarta 这些包名前缀。本文将详细介绍这三个命名空间的含义、发展历程以及它们之间的关系,帮助你更好地理解 Java 生态系统。 一、Java:核心 API 的基础 ✅ 含义: java 是 Java 标准库的核心包名。所有以 java. 开头的类构…...
LeetCode百题刷002摩尔投票法
遇到的问题都有解决的方案,希望我的博客可以为你提供一些帮助 图片源自leetcode 题目:169. 多数元素 - 力扣(LeetCode) 一、排序法 题目要求需要找到多数值(元素个数>n/2)并返回这个值。一般会想到先…...
【推荐笔记工具】思源笔记 - 隐私优先的个人知识管理系统,支持 Markdown 排版、块级引用和双向链接
Typora 使用Typora好多年了,一直非常的喜欢这个简洁的Markdown编辑工具,低版本的免费且好用。 Typora官网地址: https://typora.io/ https://typoraio.cn/ Typora的文档树如下,细看后,总觉得差点意思! 思源笔记 今…...
ACTF2025 - Web writeup
ACTF2025 - Web writeup ACTF upload 进去后是一个登录界面,输入用户名后登录,然后到一个文件上传的界面。 在 /upload?file_path 处,可以实现任意文件读取,文件内容保存在 img 标签中的 base64 值中。 示例请求:…...
使用Java实现HTTP协议服务:从自定义服务器到内置工具
在Web开发领域,HTTP协议是服务器与客户端(如Web浏览器)通信的核心。Java作为一种多功能且强大的编程语言,提供了多种方法来实现HTTP协议服务,满足从学习实验到生产部署的各种需求。本文将深入探讨在Java中实现HTTP服务的三种主要方法:使用ServerSocket构建自定义HTTP服务…...
【星海随笔】信息安全相关标准
重要的国际信息安全标准> 国际标准化组织(ISO) 该组织成立于1947年2月23日,总部位于瑞士日内瓦 国际电工委员会(IEC) 成立于1906年,最初总部设在英国伦敦,但后来于1948年迁至瑞士日内瓦…...
检查当前 Docker 使用的 默认运行时(default runtime)方法
目录 ✅ 方法一:查看 Docker 配置文件(最准确) ✅ 方法二:使用 Docker info 命令 ✅ 方法三:检查特定容器的运行时 说明:常见的 Docker Runtime ✅ 方法一:查看 Docker 配置文件(…...
【论文阅读】基于客户端数据子空间主角度的聚类联邦学习分布相似性高效识别
Efficient distribution similarity identification in clustered federated learning via principal angles between client data subspaces -- 基于客户端数据子空间主角度的聚类联邦学习分布相似性高效识别 论文来源TLDR背景与问题两个子空间之间的主角(Principa…...
MySQL 性能调优:从执行计划到硬件瓶颈
MySQL 性能调优:从执行计划到硬件瓶颈 一、性能调优的宏观视角与核心挑战 在数字化浪潮下,企业数据量呈指数级增长,MySQL 作为主流关系型数据库,面临着巨大的性能压力。某电商平台日均订单量突破千万,高峰期数据库响…...
a-range-picker 格式化 M2 为正确日期格式
直接打印 range-picker value 是一个满足 dayjs 规则的数组: Reactive<1. Array(2)1. 0:Reactive<1. M2>2. 1: M2 {$L: en, $u: undefined, $d: Fri May 02 2025 14:50:00 GMT0800 (中国标准时间), $y: 2025, $M: 4, …}3. length: 24. [[Prototype]]: Ar…...
shopping mall(document)
shopping mall(document) 商城的原型,学习,优化,如何比别人做的更好,更加符合大众的习惯 抄别人会陷入一个怪圈,就是已经习惯了,也懒了,也不带思考了。 许多产品会迫于…...
【软件设计师:软件】20.软件设计概述
一、软件设计基本原则 一、软件设计基本原则 1. 模块 是指执行某一特定任务的数据结构和程序代码。 将模块的接口和功能定义为其外部特性将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。 2 . 信息隐蔽 将每…...
ArcScroll: 弧形滑动控件
一. 什么是ArcScroll? ArcScroll是一种基于Scroll控件实现的弧形滑动控件。可以让Scroll内容项沿着一个圆心的轨迹滑动,从而实现内容弧形滑动的效果。如下图: 水平滑动: 垂直滑动: 二. 实现方案 以下,以水平的方向…...
芋道框架 账号未登录、租户标识未传递
一. 账号未登陆 {"code": 401,"data": null,"msg": "账号未登录" } 将接口中的 PreAuthorize 注解删除, 使用 PermitAll 注解, 设置 PermitAll 无需认证 Spring Security 中的 YudaoWebSecurityConfigurerAdapter 有详细说明 PostM…...
【计算机视觉】OpenCV项目实战:get_inverse_perspective:基于OpenCV的透视图转化为不同平面
get_inverse_perspective:逆透视变换的算法实现与实战指南 一、项目概述与技术背景1.1 核心功能与技术价值1.2 逆透视变换原理1.3 技术指标对比 二、环境配置与算法实现2.1 硬件要求2.2 软件部署依赖安装核心代码结构 2.3 校准参数配置 三、核心算法优化3.1 矩阵运算…...
Jsoup与HtmlUnit:两大Java爬虫工具对比解析
Jsoup:HTML解析利器 定位:专注HTML解析的轻量级库(也就是快,但动态页面无法抓取) 核心能力: DOM树解析与CSS选择器查询 HTML净化与格式化 支持元素遍历与属性提取 应用场景:静态页面数据抽…...
使用 ANSYS AEDT(单向耦合)进行高功率同轴射频滤波器的热分析
电热模拟 当今无线射频设备日益复杂,对大型复杂射频设计的精确高效仿真需求也随之增加。在设计早期识别和预测潜在问题可以节省资源、时间和成本。热量会降低电子设备的性能和可靠性,因此热分析对于确定设备在实际工作条件下是否能达到预期性能至关重要…...
Baklib实战企业内容与中台管理差异解析
企业内容管理中台本质差异 企业内容管理系统(CMS)与内容中台的核心差异在于战略定位与技术路径的本质性区隔。传统CMS聚焦于内容存储与审批流程的线性管理,而内容中台则构建起全域数据服务中枢,通过API接口实现跨系统内容资产调用…...
API请求参数有哪些?
通用参数 app_key:应用的唯一标识,用于验证应用身份,调用API时必须提供。 timestamp:请求时间戳,通常为当前时间的毫秒级时间戳,用于防止请求被重放攻击。 format:返回数据的格式,…...
探秘 InSAR:数据处理与形变信息提取全解析
技术点目录 InSAR技术应用现状分析及其发展InSAR原理、技术方法讲解数据处理环境建立与软件熟悉SAR影像数据获取、DEM数据获取InSAR数据前处理技术InSAR地形三维重建DInSAR形变信息提取时序InSAR技术形变速率与形变时间序列信息获取星地InSAR技术监测案例了解更多 ——————…...
Nginx静态资源增加权限验证
Nginx静态资源增加权限验证 一、前言二、解决思路2.1、方式一2.2、方式二三、代码3.1、方式一3.1.1、前端代码3.1.2、后端代码3.1.3、Nginx调整3.1.4、注意事项3.2.方式二四、参考资料一、前言 在项目开发的过程中,项目初期,及大部分小型项目都是使用共享磁盘进行静态文件的…...
初识MySQL
1. 什么是数据库 2. 什么是MySQL 我们在使用MySQL与Java进行交互时使用的接口为JDBC 3. MySQL安装与SQLyog管理工具 附录将会提供相关绿色版软件,不用从官网下载了 配置环境变量: 双击打开,新建(根据mysql的根目录写pathÿ…...
计算机网络:深度解析基于链路状态的内部网关协议IS-IS
IS-IS(Intermediate System to Intermediate System)路由协议详解 IS-IS(Intermediate System to Intermediate System)是一种基于链路状态的内部网关协议(IGP),最初由ISO为OSI(开放系统互连)模型设计,后经扩展支持IP路由。它广泛应用于大型运营商网络、数据中心及复…...
python---kafka常规使用
安装依赖 在开始之前,需要安装 kafka-python 库。可以通过以下命令安装: pip install kafka-python创建生产者 生产者负责将消息发送到 Kafka 主题。以下是一个简单的生产者示例: from kafka import KafkaProducer import json import ti…...
图像泊松融合(convpyr_small版本)
一、背景介绍 前面已经讲过泊松融合算法和它的fft快速版本实现了,想看下还有没有更快的版本,继续翻了下论文,找到了更快速的版本:Convolution Pyramids 。 找到它的matlab代码跑了下,效果还不错。学习记录,…...
ABP vNext + EF Core 实战性能调优指南
ABP vNext EF Core 实战性能调优指南 🚀 目标 本文面向中大型 ABP vNext 项目,围绕查询性能、事务隔离、批量操作、缓存与诊断,系统性地给出优化策略和最佳实践,帮助读者快速定位性能瓶颈并落地改进。 📑 目录 ABP vN…...
Spark,在shell中运行RDD程序
在hdfs中/wcinput中创建一个文件:word2.txt在里面写几个单词 启动hdfs集群 [roothadoop100 ~]# myhadoop start [roothadoop100 ~]# cd /opt/module/spark-yarn/bin [roothadoop100 ~]# ./spark-shell 写个11测试一下 按住ctrlD退出 进入环境:spar…...