deepseek梳理java高级开发工程师微服务面试题-进阶版
高级Java微服务面试题与深度解析
一、Spring Cloud核心组件深度剖析
1. Eureka服务注册发现机制
题目:详细分析Eureka的AP特性实现原理,包括服务注册、续约、剔除和自我保护机制,并说明与Nacos的CP模式区别。
答案:
Eureka AP实现原理:
// 服务注册核心逻辑
public void register(InstanceInfo info) {// 写入注册表(ConcurrentHashMap)registry.put(info.getId(), info);// 同步到其他节点(异步复制)replicateToPeers(Action.Register, info);
}// 服务续约(每30秒)
public boolean renew(String appName, String id) {Lease<InstanceInfo> lease = registry.get(id);if (lease != null) {lease.renew(); // 更新最后更新时间戳return true;}return false;
}// 服务剔除(每60秒检查)
void evict() {List<Lease<InstanceInfo>> expiredLeases = new ArrayList<>();for (Lease<InstanceInfo> lease : registry.values()) {if (lease.isExpired()) { // 90秒未续约expiredLeases.add(lease);}}// 随机剔除(避免同时剔除过多服务)int toEvict = Math.min(expiredLeases.size(), (int) (registry.size() * 0.85));for (int i = 0; i < toEvict; i++) {registry.remove(expiredLeases.get(i).getHolder().getId());}
}// 自我保护机制
if (numOfRenews < expectedNumberOfRenewsPerMin * 0.85) {// 进入保护模式,停止剔除服务protectionModeOn = true;
}
与Nacos CP模式对比:
- 数据一致性:
- Eureka:最终一致,通过异步复制
- Nacos:Raft协议保证强一致
- 注册表存储:
- Eureka:双层Map(应用-实例)
- Nacos:Distro协议+持久化存储
- 健康检查:
- Eureka:客户端心跳(30秒)
- Nacos:TCP/HTTP/MYSQL主动探测
- 适用场景:
- Eureka:高可用优先场景
- Nacos:配置中心等需要强一致场景
二、Dubbo核心架构深度解析
2. Dubbo服务调用链路
题目:分析Dubbo服务调用过程中的Filter链、负载均衡和集群容错机制,用流程图说明一次RPC调用的完整过程。
答案:
调用流程图:
Consumer → Proxy → FilterChain → LoadBalance → Cluster → Network → Server FilterChain → ServiceImpl
核心组件实现:
// Filter责任链(SPI扩展点)
public interface Filter {Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException;
}// 负载均衡策略
public abstract class AbstractLoadBalance implements LoadBalance {public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) {if (invokers.isEmpty()) return null;if (invokers.size() == 1) return invokers.get(0);return doSelect(invokers, url, invocation); // 模板方法}// 具体策略:Random/RoundRobin/LeastActive等protected abstract <T> Invoker<T> doSelect(...);
}// 集群容错(Cluster接口)
public class FailoverCluster implements Cluster {public <T> Invoker<T> join(Directory<T> directory) throws RpcException {return new FailoverClusterInvoker<>(directory);}
}// 网络通信(Netty实现)
public class NettyClient extends AbstractClient {protected void doOpen() {bootstrap = new Bootstrap().group(eventLoopGroup).channel(NioSocketChannel.class).handler(new ChannelInitializer<SocketChannel>() {protected void initChannel(SocketChannel ch) {ch.pipeline().addLast("decoder", new NettyDecoder()).addLast("encoder", new NettyEncoder()).addLast("handler", new NettyClientHandler());}});}
}
关键配置项:
# 负载均衡
dubbo.provider.loadbalance=leastactive# 集群容错
dubbo.consumer.cluster=failover
dubbo.consumer.retries=2# 超时控制
dubbo.reference.timeout=3000
三、Spring Cloud Alibaba整合
3. Sentinel熔断降级原理
题目:分析Sentinel的滑动窗口统计和熔断规则判断机制,对比Hystrix的实现差异。
答案:
Sentinel核心实现:
// 滑动窗口统计(LeapArray)
public class LeapArray<T> {private final AtomicReferenceArray<WindowWrap<T>> array;private final int windowLengthInMs; // 窗口长度(如500ms)public T currentWindow() {long time = TimeUtil.currentTimeMillis();int idx = calculateTimeIdx(time);long windowStart = calculateWindowStart(time);while (true) {WindowWrap<T> old = array.get(idx);if (old == null) {// 初始化新窗口WindowWrap<T> window = new WindowWrap<>(windowLengthInMs, windowStart, newEmptyBucket());if (array.compareAndSet(idx, null, window)) {return window.value();}} else if (windowStart == old.windowStart()) {return old.value();} else if (windowStart > old.windowStart()) {// 重置过期窗口if (updateLock.tryLock()) {try {return resetWindowTo(old, windowStart);} finally {updateLock.unlock();}}}}}
}// 熔断规则判断
public class CircuitBreaker {protected boolean checkState(StatisticNode node) {if (rule.getStrategy() == RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO) {double exception = node.exceptionQps();double success = node.successQps();// 异常比例超过阈值if (success + exception >= rule.getMinRequestAmount() && exception / (success + exception) >= rule.getThreshold()) {return true;}}return false;}
}
与Hystrix对比:
┌──────────────────┬──────────────────────────────┬──────────────────────────────┐
│ 特性 │ Sentinel │ Hystrix │
├──────────────────┼──────────────────────────────┼──────────────────────────────┤
│ 隔离策略 │ 信号量(并发控制) │ 线程池/信号量 │
│ 熔断维度 │ 资源粒度 │ 命令粒度 │
│ 统计模型 │ 滑动窗口(实时统计) │ 固定窗口(桶计数) │
│ 规则配置 │ 动态规则(支持多种数据源) │ 静态配置 │
│ 系统自适应 │ 支持(Load/QPS/线程数等) │ 不支持 │
│ 热点防护 │ 支持 │ 不支持 │
└──────────────────┴──────────────────────────────┴──────────────────────────────┘
四、分布式事务解决方案
4. Seata的AT模式实现
题目:详细说明Seata AT模式的工作流程,包括全局事务协调、分支事务注册和两阶段提交的具体实现。
答案:
AT模式执行流程:
// 1. 全局事务开始
@GlobalTransactional
public void purchase() {// 分支事务1orderService.create();// 分支事务2 storageService.deduct();
}// 2. 分支事务注册
public class DataSourceProxy extends AbstractDataSourceProxy {public ConnectionProxy getConnection() throws SQLException {// 拦截SQL生成undo_logConnection conn = targetDataSource.getConnection();return new ConnectionProxy(conn, dataSourceProxy);}
}// 3. 两阶段提交
// 第一阶段:本地事务提交
INSERT INTO undo_log (xid, branch_id, rollback_info, log_status)
VALUES (?, ?, ?, ?);// 第二阶段:
// - 成功:异步删除undo_log
// - 失败:根据undo_log补偿
核心组件交互:
TM(事务管理器) → TC(事务协调器) ←→ RM(资源管理器)↑ ↑| |全局事务ID 分支事务状态
关键实现细节:
- SQL解析:通过DataSourceProxy拦截SQL,解析表/行数据
- 前置镜像:SELECT获取修改前数据
- 后置镜像:SELECT获取修改后数据
- 全局锁:防止其他事务修改相同数据
性能优化点:
- 异步化第二阶段处理
- 全局锁优化(减少锁持有时间)
- 批量undo_log删除
五、服务网格与云原生
5. Spring Cloud Gateway与Envoy对比
题目:对比分析Spring Cloud Gateway和Envoy的架构设计、性能特点和适用场景。
答案:
架构对比:
// Spring Cloud Gateway核心流程
public class FilteringWebHandler implements WebHandler {public Mono<Void> handle(ServerWebExchange exchange) {Route route = exchange.getRequiredAttribute(GATEWAY_ROUTE_ATTR);List<GatewayFilter> filters = route.getFilters();return new DefaultGatewayFilterChain(filters).filter(exchange).then(proxyService.forward(exchange));}
}// Envoy过滤器链(C++实现)
void FilterManager::onContinueDecoding() {for (auto& filter : decoder_filters_) {FilterStatus status = filter->decodeHeaders(headers, end_stream);if (status == StopIteration) return;}
}
特性对比表:
┌──────────────────┬──────────────────────────────┬──────────────────────────────┐
│ 特性 │ Spring Cloud Gateway │ Envoy │
├──────────────────┼──────────────────────────────┼──────────────────────────────┤
│ 开发语言 │ Java │ C++ │
│ 配置方式 │ Java DSL/YAML │ xDS API/YAML │
│ 协议支持 │ HTTP/WebSocket │ HTTP/gRPC/TCP等 │
│ 扩展能力 │ 自定义Filter(Java) │ WASM/Lua插件 │
│ 性能 │ 万级QPS │ 十万级QPS │
│ 服务发现 │ Eureka/Nacos等 │ 集成K8s │
│ 适用场景 │ Spring生态微服务 │ 多语言服务网格 │
└──────────────────┴──────────────────────────────┴──────────────────────────────┘
选型建议:
-
Spring Cloud Gateway:
- 已有Spring Cloud技术栈
- 需要深度Java定制
- 快速开发API网关
-
Envoy:
- 多语言混合架构
- 需要高级流量管理(金丝雀/镜像)
- 已使用Istio服务网格
相关文章:
deepseek梳理java高级开发工程师微服务面试题-进阶版
高级Java微服务面试题与深度解析 一、Spring Cloud核心组件深度剖析 1. Eureka服务注册发现机制 题目:详细分析Eureka的AP特性实现原理,包括服务注册、续约、剔除和自我保护机制,并说明与Nacos的CP模式区别。 答案: Eureka A…...
Math工具类全面指南
Math工具类全面指南 前言一、Math 类的基础特性1.1 类的声明与常量1.2 数据类型支持 二、基础算术运算2.1 绝对值运算2.2 取整运算2.2.1 floor():向下取整2.2.2 ceil():向上取整2.2.3 round():四舍五入取整 2.3 最大值与最小值 三、三角函数与…...
为什么 Linux 上默认没有 host.docker.internal
在 Linux 环境中,host.docker.internal 是 Docker 为容器提供的一个特殊 DNS 名称,用于指向宿主机的 IP 地址(类似 macOS/Windows 中的行为)。但这个功能在 Linux 上默认不启用,需要手动配置才能使用。以下是详细解释和…...
HTML 颜色全解析:从命名规则到 RGBA/HSL 值,附透明度设置与场景应用指南
一、HTML 颜色系统详解 HTML 中的颜色可以通过多种方式定义,包括颜色名称、RGB 值、十六进制值、HSL 值等,同时支持透明度调整。以下是详细分类及应用场景: 1. 颜色名称(预定义关键字) HTML 预定义了 140 个标准颜色名…...
HTTP / HTTPS 协议
目录 一、前言: 二、Fiddler 抓包工具: 三、http 协议: 1、http 请求: 1.(1)请求行: 1、(2) 请求头: 1、(3) 请求正文: 2、http 响应: 2、(1) 状态码&#x…...
使用GRPO训练调度事件的语言模型!
参考:https://huggingface.co/blog/anakin87/qwen-scheduler-grpo 现在是2025年,在DeepSeek热潮之后,每个人都想使用GRPO训练自己的推理模型。 作为一名实践者,我也想这样做:仅使用提示和奖励来训练语言模型是一件非常…...
关于 js:9. Node.js 后端相关
一、Node 环境搭建与执行流程 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JS 不再局限于浏览器内,而是可以在服务器、终端、本地脚本中运行。 核心定位:让我们可以用 JS 写本地程序、脚本、爬虫、加密逻辑、hook 工具、…...
More Effective C++:改善编程与设计(上)
More Effective C: 目录 More Effective C: 条款1:仔细区别pointers和 references 条款2:最好使用C转型操作符 条款3:绝对不要以多态方式处理数组 条款4:非必要不要提供default constructor 条款5:对定制的“类型转换函数”保持警觉 …...
SCDN如何有效防护网站免受CC攻击?——安全加速网络的实战解析
在互联网安全威胁日益复杂化的今天,CC(Challenge Collapsar)攻击已成为网站运营者面临的主要挑战之一。这种攻击通过模拟大量合法用户请求,消耗服务器资源,导致正常用户无法访问。而**安全内容分发网络(SCD…...
关于并发编程AQS的学习
目录 1. AQS的核心作用 2. AQS的核心结构 3. 关键方法 4. AQS的应用示例 4.1、ReentrantLock的实现 4.2、CountDownLatch的实现 5. AQS的优势 6. 对比其他同步机制 前言 AQS(AbstractQueuedSynchronizer) 是Java并发编程中一个核心的同步器框架…...
16S18S基础知识(1)
相关内容: https://blog.csdn.net/weixin_34315189/article/details/86397125?fromshareblogdetail&sharetypeblogdetail&sharerId86397125&sharereferPC&sharesource2302_80012625&sharefromfrom_link https://metagenome.blog.csdn.net/art…...
Java Spring Boot 控制器中处理用户数据详解
目录 一、获取请求参数1.1 获取查询参数1.2 获取路径参数 二、处理表单提交2.1 处理表单数据 三、处理 JSON 数据3.1 接收 JSON 数据 四、返回 JSON 数据五、处理文件上传5.1 单文件上传5.2 多文件上传 六、总结 在 Spring Boot 应用开发中,控制器(Contr…...
AI产品上市前的“安全通行证“
首席数据官高鹏律师团队 如今AI 产品如雨后春笋般涌现,从智能音箱到自动驾驶汽车,从语音助手到医疗诊断软件,它们正全方位渗透进我们的生活。然而,在 AI 产品迈向市场、走进千家万户之前,有一系列强制性安全认证如同坚…...
sql server 2019 将单用户状态修改为多用户状态
记录两种将单用户状态修改为多用户状态,我曾经成功过的方法,供参考 第一种方法 USE master; GO -- 终止所有活动连接 DECLARE kill_connections NVARCHAR(MAX) ; SELECT kill_connections KILL CAST(session_id AS NVARCHAR(10)) ; FROM sys.dm_ex…...
[滑动窗口]越短越合法(可转化成越长越合法)
题目链接 题意 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于k 的连续子数组的数目。 首先当ans增加时 我们认为r固定 方法一、转化成越长越合法 思路 算出乘积 ≥ k \ge k ≥k的子数组数量 再用所有子数组数量减去上面算出来…...
idea中编写spark程序
### 在 IntelliJ IDEA 中配置和编写 Spark 程序 要在 IntelliJ IDEA 中高效地开发 Spark 程序,需要完成一系列必要的环境配置以及项目搭建工作。以下是详细的说明。 --- #### 1. 安装与配置 IntelliJ IDEA 为了确保 IDE 可以支持 Scala 开发,首先需要…...
机器学习入门(一)
机器学习入门(一) 文章目录 机器学习入门(一)一、机器学习分类1.1 监督学习1.2 半监督学习1.3 无监督学习1.4 强化学习 二、scikit-learn工具介绍scikit-learn安装 三、数据集3.1 sklearn玩具数据集介绍3.2 sklearn现实世界数据集…...
力扣每日一题之移动零
题目说明: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 思路分析:我们可以考虑使用双指针来解答该题。双指针分…...
GaiaEx 盖亚:从合规出发,一家新兴交易平台的全球化路径探索
在加密货币交易平台日益激烈的竞争中,监管趋严、安全要求提升、用户体验优化已成为行业发展的三大核心议题。2025年初正式上线的GaiaEx 盖亚交易所,正是在这一市场背景下,以“合规 产品 生态”的多维路径,逐步建立起自身的发展方…...
车载网关--- 职责边界划分与功能解耦设计
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
EasyRTC嵌入式音视频通信SDK打造带屏IPC全场景实时通信解决方案
一、方案概述 在智能安防与物联网快速发展的背景下,带屏IPC(网络摄像机)不仅承担着视频采集与监控的基础功能,还逐渐向多样化交互与智能化方向演进。EasyRTC作为一款强大的实时通信框架,具备低延迟、高稳定性、跨平…...
STM32入门笔记(05):内部高速8Mhz时钟最大时钟可以设置 64 Mhz?如何修改system_stm32f10x.c里面的代码?
6.2 Clocks 最大系统时钟频率 当 STM32F103 系列仅使用内部高速振荡器(HSI,8 MHz)作为时钟源,并通过 PLL 放大时,最大可达 64 MHz。([forum.mikroe.com][1], [keil.com][2]) HSI 被内部除以 2(即 4 M…...
iOS 阅后即焚功能的实现
iOS阅后即焚功能实现步骤 一、功能设计要点 消息类型支持:文本、图片、视频、音频等。销毁触发条件: 接收方首次打开消息后启动倒计时。消息存活时间可配置(如5秒、1分钟)。 安全要求: 端到端加密(E2EE&a…...
二叉树前中后序遍历统一迭代法详解:空标记法与栈操作的艺术
二叉树的 前序、中序、后序 遍历是算法中的经典问题。递归实现简单直观,而迭代法则能更好地理解栈的操作逻辑。前文中(中序,前序与后序)所讲过传统的迭代法需要为每种遍历设计不同的入栈顺序,但 统一迭代法 通过引入 空标记节点&a…...
Spark 集群配置、启动与监控指南
Spark 集群的配置和启动需要几个关键步骤。以下是完整的操作流程,包含配置修改、集群启动、任务提交和常见错误排查方法。 1. 修改 Spark 配置文件 首先需要编辑 Spark 配置文件,设置集群参数: bash # 进入 Spark 配置目录 cd $SPARK_HOM…...
综述:拓扑材料的热磁性质
Adv. Funct. Mater. 2025, 2506631 https://doi.org/10.1002/adfm.202506631 近年来,越来越多的拓扑材料表现出优异的热磁(TM)性能,其显著的双极效应和线性能带带来的高载流子迁移率改善了这种性能。 本文综述了TM输运理论、基于…...
lanqiaoOJ 652:一步之遥 ← 扩展欧几里得定理
【题目来源】 https://www.lanqiao.cn/problems/652/learning/ 【题目背景】 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 【题目描述】 从昏迷中醒来,小明发现自己被关在X星球的废矿车里。矿车停在平直的废弃…...
双目云台摄像机:双摄安防功能全方位
双目云台摄像机是一种具有革命性设计的云台摄像机设备,其核心在于其独特的双摄像头配置。以下是对这种先进安防设备的详细介绍: 一、核心原理 双目云台摄像机的核心原理在于利用两个摄像头从不同角度捕捉同一场景,通过先进的算法计算两个图…...
Linux - 基础指令
目录 linux下基本指令 ls pwd cd touch mkdir rmdir rm man cp mv cat more less head tail | 匿名管道 find 指令 which alias grep zip/unzi rz/sz tar 重要的⼏个热键 学习linux操作系统,学习指令是必不可少的 尽管有图形化的linux操作系统供学者学习&am…...
深圳无人机展览即将开始,无人机舵机为什么选择伟创动力
深圳无人机展览即将开始,无人机舵机为什么选择伟创动力 2025年5月23日至25日,伟创动力(Kpower)将携旗下多款高性能舵机及微型驱动系统方案亮相2025国际低空经济与无人系统博览会(深圳无人机展),全面展示其在无人机、机…...
ajax提交form表单数据举例
目录 一、HTML 表单准备二、JavaScript 文件(form.js)三、服务器端处理(Spring Boot 示例)四、运行和测试五、总结在现代 Web 开发中,为了提供更流畅、无需页面刷新的用户体验,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于提交表单数据。本文将通过一个具体…...
IDEA 新建 SpringBoot 项目时,没有高版本 SpringBoot 可选
环境描述 IDEA 2025.1.1JDK17Maven 3.9.9 问题描述 IDEA 新建 SpringBoot 项目时,没有高版本 SpringBoot 可选,可以看到此时的最高版本为 3.0.2: 问题分析 返回上一步,可以发现 Spring Initializr 的服务地址为阿里云&#…...
下载的旧版的jenkins,为什么没有旧版的插件
下载的旧版的jenkins,为什么没有旧版的插件,别急 我的jenkins版本: 然后我去找对应的插件 https://updates.jenkins.io/download/plugins/ 1、Maven Integration plugin: Maven 集成管理插件。 然后点击及下载成功 然后 注意&…...
java连数据库
一、准备工作 安装MySQL数据库 确保已安装MySQL服务器并启动服务 下载JDBC驱动 官方驱动:MySQL Connector/JMaven依赖: <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactI…...
常见排序算法及其java实现
常见排序算法 一、冒泡排序(Bubble Sort)二、选择排序(Selection Sort) 三、插入排序(Insertion Sort)四、快速排序(Quick Sort) 五、归并排序(Me…...
【Python 算法零基础 2.模拟 ④ 基于矩阵】
目录 基于矩阵 Ⅰ、 2120. 执行所有后缀指令 思路与算法 ① 初始化结果列表 ② 方向映射 ③ 遍历每个起始位置 ④ 记录结果 Ⅱ、1252. 奇数值单元格的数目 思路与算法 ① 初始化矩阵 ② 处理每个操作 ③ 统计奇数元素 Ⅲ、 832. 翻转图像 思路与算法 ① 水平翻转图像 ② 像素值…...
2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2)
2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2) 序号过程过程组9.1规划资源管理规划9.2估算活动资源规划9.3获取资源执行9.4建设团队执行9.5管理团队执行9.6控制资源监控 文章目录 2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2…...
IEEE802.16 标准介绍
IEEE802.16 标准又称为IEEE Wireless MAN 空中接口标准,对工作于不同频带的无线接入系统空中接口进行了规范。由于它所规定的无线系统覆盖范围在公里量级,因此802.16 系统主要应用于城域网。 根据使用频带高低的不同,802.16 系统可分为应用于…...
Nginx配置与应用案例详解
Nginx 是一款高性能的 HTTP 服务器和反向代理服务器,广泛用于负载均衡、静态资源托管和动态内容转发。以下是对 Nginx 配置的详细解析及常见应用场景案例。 一、Nginx 配置文件结构 Nginx 的配置文件通常位于 /etc/nginx/nginx.conf,包含以下核心模块: 全局块 (Main Contex…...
Hadoop-HDFS-Packet含义及作用
在 HDFS(Hadoop Distributed File System)中,Packet 是数据读写过程中用于数据传输的基本单位。它是 HDFS 客户端与数据节点(DataNode)之间进行数据交互时的核心概念,尤其在写入和读取文件时,Pa…...
作业帮Android面试题及参考答案
简单描述 Java 类加载机制 Java 类加载机制是将类的字节码载入 JVM 并生成对应的 Class 对象的过程,主要包括以下几个阶段。 加载是类加载的第一个阶段,通过类的全限定名来获取其字节码流,然后将字节码流解析成方法区中的运行时数据结构&…...
分布式1(cap base理论 锁 事务 幂等性 rpc)
目录 分布式系统介绍 一、定义与概念 二、分布式系统的特点 三、分布式系统面临的挑战 四、分布式系统的常见应用场景 CAP 定理 BASE 理论 BASE理论是如何保证最终一致性的 分布式锁的常见使用场景有哪些? 1. 防止多节点重复操作 2. 资源互斥访问 3. 分…...
如何下载 MySQL 驱动 JAR 包
下载 MySQL 驱动 JAR 包的 4 种方式: 官网下载:从 MySQL 官网 下载对应版本的 ZIP 包Maven:在 pom.xml 添加 mysql-connector-java 依赖Gradle:在 build.gradle 使用 implementation mysql:mysql-connector-java:8.0.x直接下载&a…...
unordered_map和unordered的介绍和使用
目录 unordered系列关联式容器 unordered_map unordered_map的接口说明 unordered_map的定义方式 unordered_map接口的使用 unordered_map的容量 unordered_map的迭代器 unordered_map的元素访问 unordered_map的查询 unordered_map的修改操作 unordered_multimap u…...
【原创】使用阿里云存放一个临时共享的文件
在某些场合,需要临时将一个文件存储到一个可被公网访问的地方,某个服务需要访问一下这个文件。这个文件基本上就是一次寿命,也就是你上传一下,然后被访问一下,这个文件的寿命就结束了。 对于这种需求,自建…...
C++学习细节回顾(汇总二)
一.初始化列表相关 1.初始化顺序受申明顺序影响 2.在必要时可以部分不采用初始化列表,避免受特性1影响 二.非类型模板参数 template< class T , size_t N 10 > 三.特化–特殊化处理 template< class T > bool less(T left , T right) { return left&…...
【行为型之访问者模式】游戏开发实战——Unity灵活数据操作与跨系统交互的架构秘诀
文章目录 🧳 访问者模式(Visitor Pattern)深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码(游戏物品系统)1. 定义元素与访问者接口2. 实现具体元素类3. 实现具体访问者4. 对象结构管理5. 客户端使用 …...
ubuntu系统安装配置adb工具
获取adb tools 1. 下载最新版(替换链接中的版本号) wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip2. 解压到当前目录 unzip platform-tools-latest-linux.zip3. 移动文件到系统目录 sudo mv platform-tools /usr/…...
基于Python的量化交易实盘部署与风险管理指南
基于Python的量化交易实盘部署与风险管理指南 一、模拟交易与参数优化 1.1 券商API接入与模拟交易 在量化交易落地前,模拟交易是策略验证的“安全沙箱”,其核心价值在于用零成本环境暴露策略缺陷。以股票市场为例,同花顺与通达信模拟盘接口…...
MySQL 入门大全:数据类型
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...