MyBatis 面试专题
MyBatis 面试专题
- 基础概念
- MyBatis中的工作原理
- MyBatis 与 Hibernate 的区别?
- #{} 和 ${} 的区别?
- MyBatis 的核心组件有哪些?
- 映射与配置
- 如何传递多个参数?
- ResultMap 的作用是什么?
- 动态 SQL 常用标签有哪些?
- 如何复用 SQL 片段?
- 当实体中的属性和表中的字段不一致的情况下怎么办?
- 高级特性
- 一级缓存与二级缓存的区别?
- MyBatis中如何实现缓存的扩展
- 如何实现延迟加载(懒加载)?
- MyBatis 插件(Plugin)原理?
- 分页插件的实现原理?
- 关联查询
- 一对一查询如何配置?
- 一对多查询如何配置?
- 嵌套查询 vs 嵌套结果的区别?
- 事务与性能
- MyBatis 如何管理事务?
- 如何执行批量操作?
- 常见问题排查
- 如何防止SQL注入
- Mapper 接口如何绑定到 XML?
- 如何获取自动生成的主键?
- 遇到 BindingException 可能的原因?
- 扩展与集成
- 如何与 Spring 集成?
- MyBatis 如何整合分布式缓存(如 Redis)?
基础概念
MyBatis中的工作原理
- 系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在
Configuration
对象@Test public void test1() throws Exception{ // 1.获取配置文件 InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); // 2.加载解析配置文件并获取SqlSessionFactory对象 // SqlSessionFactory 的实例我们没有通过 DefaultSqlSessionFactory直接来获取 // 而是通过一个Builder对象来建造的 // SqlSessionFactory 生产 SqlSession 对象的 SqlSessionFactory 应该是单例 // 全局配置文件和映射文件 也只需要在 系统启动的时候完成加载操作 // 通过建造者模式来 构建复杂的对象 1.完成配置文件的加载解析 2.完成 SqlSessionFactory的创建 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 3.根据SqlSessionFactory对象获取SqlSession对象 SqlSession sqlSession = factory.openSession(); // 4.通过SqlSession中提供的 API方法来操作数据库 List<User> list = sqlSession.selectList("com.boge.mapper.UserMapper.selectUserList"); // 获取接口的代码对象 得到的其实是 通过JDBC代理模式获取的一个代理对象 // UserMapper mapper = sqlSession.getMapper(UserMapper.class); //List<User> list = mapper.selectUserList(); System.out.println("list.size() = " + list.size()); // 5.关闭会话 sqlSession.close(); // 关闭session 清空一级缓存 }
- SqlSessionFactory: new DefaultSqlSessionFactory 全局配置文件的加载解析【Configuration】,映射文件的加载解析【Configuration,MappedStatement】
- SqlSession:new DefaultSqlSession,创建相关的事务工厂,完成Executor的创建,已经二级缓存CachingExecutor的装饰,同时完成了插件逻辑的植入。
- selectOne(); 二级缓存 -> 一级缓存 --> 数据库插入。
- SqlSession.getMapper()。
源码结构
MyBatis 与 Hibernate 的区别?
- MyBatis:半自动 ORM,需手动编写 SQL,灵活性高,适合复杂查询或对 SQL 优化有要求的场景。
- Hibernate:全自动 ORM,通过 HQL 或 Criteria API 操作对象,适合快速开发简单 CRUD,但对复杂 SQL 支持较弱。
#{} 和 ${} 的区别?
- #{}:预编译处理(占位符 ?),防止 SQL 注入,自动处理类型转换。
- ${}:字符串替换(直接拼接 SQL),需手动防注入,常用于动态表名、列名等非参数场景。
MyBatis 的核心组件有哪些?
SqlSessionFactory(会话工厂)、SqlSession(会话)、Mapper 接口、Executor(执行器)、MappedStatement(SQL 映射)。
映射与配置
如何传递多个参数?
使用 @Param
注解标注参数名,或通过 POJO 对象、Map 封装参数。
ResultMap 的作用是什么?
解决数据库列名与 Java 对象属性名不一致的问题,支持复杂关联映射(一对一、一对多)。
动态 SQL 常用标签有哪些?
<if>、<choose>/<when>/<otherwise>、<foreach>、<where>、<set>、<trim>
<select id="queryPageAllEmployee" resultType="com.todaytech.salary.basicInfo.model.vo.EmployeeVO">SELECT * FROM (SELECT un.agency_name AS unit_name,un.mof_dep_code, d.dept_name AS dept_name, eunf.zj_tied_date, eunf.xs_retire_expert, ef.* ,eunf.stopsignFROM zz_employeefix efLEFT JOIN zz_employeeunfix eunf ON ef.emp_id = eunf.emp_idINNER JOIN sys_agency un ON ef.unit_id = un.idINNER JOIN zz_department d ON (ef.unit_id = d.unit_id AND ef.dept_id = d.dept_id)<choose><when test="salaryAgencyType != null and salaryAgencyType != ''">WHERE (ef.salary_agency_type = #{salaryAgencyType}<if test="childrenAgencyIds != null and childrenAgencyIds.size() > 0 ">OR ef.unit_id IN <foreach collection="childrenAgencyIds" item="item" open="(" separator="," close=")"> #{item} </foreach></if>)</when><otherwise><if test="childrenAgencyIds != null and childrenAgencyIds.size() > 0 ">WHERE ef.unit_id IN <foreach collection="childrenAgencyIds" item="item" open="(" separator="," close=")"> #{item} </foreach></if></otherwise></choose> ) em${ew.customSqlSegment}ORDER BY emp_id DESC,emp_modified DESC</select>
如何复用 SQL 片段?
使用 <sql>
定义片段,通过 <include>
引用。
<sql id="getChildNotDeptSql">select orgclosure_id as id from sys_agency_relation where orgclosure_pid=#{agencyId}
</sql>
<select id="queryUnitIds" resultType="java.lang.Integer">select * from (<include refid="com.todaytech.vue.mapper.SysAgencyMapper.getChildNotDeptSql"><property name="agencyId" value="#{agencyId}"/></include> ) ug
</select>
当实体中的属性和表中的字段不一致的情况下怎么办?
- 我们可以在对应的SQL语句中通过
别名
的方式来解决这个问题。 - 我们通过自定义
resultMap
标签来设置属性和字段的映射关系
高级特性
一级缓存与二级缓存的区别?
- 缓存的作用:减低数据源的访问频率。从而提高数据源的处理能力。或者提高服务器的响应速度。
- 一级缓存:基于 SqlSession 级别,默认开启,会话结束或执行更新操作(增删改)时失效。
- 二级缓存:基于 namespace(Mapper 级别),需手动开启,跨会话共享,通过序列化机制实现。
- 为什么会先走二级缓存再走一级缓存?
- 二级缓存的作用域是SqlSessionFactory级别-90%找到。
- 一级缓存是SqlSession级别的-5%找到。
MyBatis中如何实现缓存的扩展
- 创建
Cache
接口的实现。重写getObject
和putObject
方法。 - 怎么让我们自定义的实现:在
cache标签
中通过type属性
关联我们自定义的Cache接口的实现。
如何实现延迟加载(懒加载)?
在 <association>
或 <collection>
中配置 fetchType="lazy"
,需全局启用 lazyLoadingEnabled=true
- 全局懒加载
<settings><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/> </settings>
- 局部懒加载
<resultMap id="userResultMap" type="User"><id property="id" column="id"/><result property="username" column="username"/><collection property="orders" javaType="ArrayList" ofType="Order" select="selectOrdersByUserId" column="id" fetchType="lazy"/> </resultMap><select id="selectUserById" resultMap="userResultMap">SELECT * FROM user WHERE id = #{id} </select><select id="selectOrdersByUserId" resultType="Order">SELECT * FROM orders WHERE user_id = #{userId} </select>
MyBatis 插件(Plugin)原理?
基于动态代理,拦截 Executor
、StatementHandler
、ParameterHandler
、ResultSetHandler
的核心方法,实现自定义逻辑(如分页、性能监控)。
分页插件的实现原理?
拦截待执行 SQL,重写为分页查询(如 MySQL 的 LIMIT
),并查询总数。
关联查询
一对一查询如何配置?
使用 <association>
标签,通过 property
指定对象属性,resultMap
或 column
映射关联结果。
<resultMap id="UserResultMap" type="User"><id property="id" column="id" /><result property="name" column="name" /><association property="address" javaType="Address"><id property="id" column="address_id" /><result property="city" column="city" /><result property="state" column="state" /></association>
</resultMap>
<select id="selectUserWithAddress" resultMap="UserResultMap">SELECT u.id, u.name, a.id as address_id, a.city, a.stateFROM User uLEFT JOIN Address a ON u.address_id = a.id
</select>
一对多查询如何配置?
使用 <collection>
标签,类似一对一,但映射对象为集合类型。
<resultMap id="UserResultMap" type="User"><id property="id" column="id" /><result property="name" column="name" /><collection property="orders" ofType="Order"><id property="id" column="order_id" /><result property="orderDate" column="order_date" /></collection>
</resultMap>
<select id="selectUserWithOrders" resultMap="UserResultMap">SELECT u.id, u.name, o.id as order_id, o.order_date FROM User uLEFT JOIN Order o ON u.id = o.user_id
</select>
嵌套查询 vs 嵌套结果的区别?
- 嵌套查询:执行多次 SQL(可能引发 N+1 问题)。
- 嵌套结果:单次复杂查询,通过 ResultMap 映射结果。
事务与性能
MyBatis 如何管理事务?
默认使用 JDBC 事务(通过 Connection
的提交/回滚),集成 Spring 后由 Spring 统一管理。
如何执行批量操作?
使用 SqlSession
的 BatchExecutor
,或在动态 SQL 中使用 <foreach>
拼接批量语句。
常见问题排查
如何防止SQL注入
-
优先使用 #{} 占位符
SELECT * FROM users WHERE username = #{username}
-
避免直接使用 ${} 拼接字符串
SELECT * FROM users WHERE username = '${username}'
-
安全使用动态 SQL 标签
<select id="findUsers" parameterType="map">SELECT * FROM users<where><if test="username != null">AND username = #{username}</if></where> </select>
-
强制校验 ${} 的使用场景
- 必须使用时(如动态表名、排序字段):
- 白名单过滤:仅允许预定义的合法值(如 orderBy 参数只接受 id, name)。
- 避免用户输入直接控制:如从下拉菜单选择排序字段,而非自由输入。
- 必须使用时(如动态表名、排序字段):
Mapper 接口如何绑定到 XML?
通过 namespace 指定接口全限定名,方法名与 XML 中的 id 一致。
即:Java(包名+类名)=xml(namespace+id)
如何获取自动生成的主键?
配置 useGeneratedKeys="true"
和 keyProperty
(如返回自增 ID 到对象的 id
属性)。
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">INSERT INTO user (name, email)VALUES (#{name}, #{email})
</insert>
遇到 BindingException 可能的原因?
Mapper 接口未扫描到、XML 中 id
与接口方法名不匹配、namespace
配置错误。
扩展与集成
如何与 Spring 集成?
使用 mybatis-spring
库,配置 SqlSessionFactoryBean
和 MapperScannerConfigurer
扫描 Mapper 接口。
MyBatis 如何整合分布式缓存(如 Redis)?
自定义 Cache
接口实现类,替换默认的 PerpetualCache。
相关文章:
MyBatis 面试专题
MyBatis 面试专题 基础概念MyBatis中的工作原理MyBatis 与 Hibernate 的区别?#{} 和 ${} 的区别?MyBatis 的核心组件有哪些? 映射与配置如何传递多个参数?ResultMap 的作用是什么?动态 SQL 常用标签有哪些?…...
C++实现大整数相加
力扣原题字符串相加 415. 字符串相加 - 力扣(LeetCode) 大整数意味着无法用基本数据类型装下,只能用字符串装下,然后手工模拟计算过程 从两个字符串的最后一位开始两两相加,记录进位,每次均有sumabsum&…...
Flutter 快速接入Fair
少点废话 1.了解Fair Fair,由58同城开源提供,目的是flutter项目上架后动态更新代码, 首先了解一个概念,热更新是flutter打包APK后会讲所有的dart代码生成一个so文件,手机通过读取并执行so文件;基于此&am…...
【深度学习新浪潮】AI ISP技术与手机厂商演进历史
本文是关于AI ISP(人工智能图像信号处理器)的技术解析、与传统ISP(图像信号处理器)的区别、近三年研究进展,以及各大手机厂商在该领域演进历史的详细报告。本报告综合多个权威来源的信息,力求全面、深入地呈现相关技术发展脉络与行业动态。 第一部分:AI ISP的定义及与传…...
用逻辑分析仪分析Usart波形
USART的波形抓取最简单,帧头帧尾只需要电平上升下降沿就可以了,不需要自己定义,也没有ID位,逻辑分析仪可以直接抓取发送的数据: 口配置:9600bps,8数据位,无校验,1个停止位…...
常⻅CMS漏洞 -DeDeCMS 获取webshell
DedeCMS是织梦团队开发PHP ⽹站管理系统,它以简单、易⽤、⾼效为特⾊,组建出各种各样各 具特⾊的⽹站 姿势⼀:通过⽂件管理器上传WebShell 1.访问⽬标靶场dedecms 后台可以直接上传任意⽂件 2.上传木马文件 3.蚁剑连接 姿势⼆:…...
基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)
摘 要 随着我国经济的飞速发展,促使各种能源使用入不敷出,尤其是最主要的能源,煤炭石油资源不断消耗与短缺,因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点,且分布范围广&…...
JAVA_数据结构_栈和队列
1.栈(Stack) 1.1概念 栈是一种特殊的线性表,它只允许一端进行增删查改操作,它的头称为栈顶,进行压栈和出栈的操作,则另一端称为栈底,并且它遵循着先进后出的操作。 压栈:也可称为进…...
独立组网和非独立组网
独立组网(SA) vs. 非独立组网(NSA) 5G组网方式主要分为 独立组网(SA, Standalone) 和 非独立组网(NSA, Non-Standalone),两者在网络架构、核心网、应用场景等方面有所不…...
HR人员和组织信息同步AD域服务器实战方法JAVA
HR人员和组织信息同步AD域服务器 前期准备AD域基础知识整理HR同步AD的逻辑代码结构配置文件设置启动类HR组织的BeanHR人员Bean获取HR人员和组织信息的类AD中处理组织和人员的类日志配置 POM.xml文件生成EXE文件服务器定时任务异常问题注意事项 前期准备 1、开发语言࿱…...
【云上CPU玩转AIGC】——腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大三学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
【测试开发】OKR 网页管理端自动化测试报告
【测试报告】OKR 管理端 项目名称版本号测试负责人测试完成日期联系方式OKR 管理端4.0马铭胜2025-03-2115362558972 1、项目背景 1.1 OKR 用户端 在如今这个快节奏的时代中,个人和组织的成长往往依赖于清晰、明确且意义深远的目标。然而,如何设定并持…...
go语言中空结构体
空结构体(struct{}) 普通理解 在结构体中,可以包裹一系列与对象相关的属性,但若该对象没有属性呢?那它就是一个空结构体。 空结构体,和正常的结构体一样,可以接收方法函数。 type Lamp struct{}func (l Lamp) On()…...
如何缓解大语言模型推理中的“幻觉”(Hallucination)?
目录 如何缓解大语言模型推理中的“幻觉”(Hallucination)? 1. 什么是大语言模型的“幻觉”(Hallucination)? 幻觉的常见类型 2. 如何缓解大模型的幻觉问题? 方法 1:使用知识检索…...
优选算法系列(3.二分查找 )
目录 一.二分查找(easy) 题目链接:704. 二分查找 - 力扣(LeetCode) 解法: 代码: 二.在排序数组中查找元素的第⼀个和最后⼀个位置(medium) 题目链接:34.…...
【论文阅读】Contrastive Clustering Learning for Multi-Behavior Recommendation
论文地址:Contrastive Clustering Learning for Multi-Behavior Recommendation | ACM Transactions on Information Systems 摘要 近年来,多行为推荐模型取得了显著成功。然而,许多模型未充分考虑不同行为之间的共性与差异性,以…...
细胞计数专题 | 高效 + 精准!点成LUNA-III™细胞计数仪解锁活细胞检测与浓度分析新高度
1 引言 在生物医学研究中,准确的细胞计数至关重要,它影响着细胞治疗、疾病诊断、组织再生和生物测定等应用领域。传统的手动计数方法既耗时又容易产生偏差。像点成LUNA-III™自动细胞计数仪这样的自动化系统,为提高计数的准确性、可重复性和…...
糊涂人寄信——递推
思路分析:当有n封信,n个信封时。第k封信没有装在第k个信封里(k从1~n),就算所有的信封都装错了。我们可以得知的是,当有1封信,时,装错类别数为0。当有两封信时,装错类别为1。 当有三…...
深入Python C API:掌握常用函数与实战技巧
深入Python C API:掌握常用函数与实战技巧 Python的灵活性和易用性使其成为广泛应用的编程语言,但在某些场景下(如高性能计算、与C/C代码交互),直接使用C语言扩展Python的能力变得尤为重要。Python C API(…...
第16章:基于CNN和Transformer对心脏左心室的实验分析及改进策略
目录 1. 项目需求 2. 网络选择 2.1 UNet模块 2.2 TransUnet 2.2.1 SE模块 2.2.2 CBAM 2.3 关键代码 3 对比试验 3.1 unet 3.2 transformerSE 3.3 transformerCBAM 4. 结果分析 5. 推理 6. 下载 1. 项目需求 本文需要做的工作是基于CNN和Transformer的心脏左心室…...
Word中公式自动标号带章节编号
(1)插入一行三列的表格,设置宽度分别为0.5,13.39和1.5,设置纵向居中,中间列居中对齐,最右侧列靠右对齐,设置段落如下 (2)插入域代码 【Word】利用域代码快速实…...
AI风向标《AI与视频制作全攻略:从入门到精通实战课程》
课程信息 AI风向标《AI与视频制作全攻略:从入门到精通实战课程》,夸克网盘和百度网盘课程。 课程介绍 《AI与视频制作全攻略:从入门到精通实战课程》是一套全面融合AI技术与视频制作的实战课程,旨在帮助创作者从基础软件使用到高级视频剪辑…...
el-table折叠懒加载支持排序
el-table折叠懒加载支持排序 因为el-table懒加载的子节点是通过缓存实现的,如果想在展开的情况下直接刷新对应子节点数据,要操作el-table组件自身数据,否则不会更新 以排序功能为例 maps: new Map() //用于存储子节点懒加载的数据// 加载子…...
Kotlin v2.1.20 发布,标准库又有哪些变化?
大家吼哇!就在三小时前,Kotlin v2.1.20 发布了,更新的内容也已经在官网上更新:What’s new in Kotlin 2.1.20 。 我粗略地看了一下,下面为大家选出一些我比较感兴趣、且你可能也会感兴趣的内容。 注意!这里…...
AI智能问答“胡说八道“-RAG探索之路
AI智能问答"胡说八道"-RAG探索之路 背景信息RAGRAG技术的知识难题分块矛盾知识缺失相互冲突 RAG知识优化实践分块优化缺失优化冲突优化 未来展望 背景信息 你有没有遇到过这样的场景?当你向智能助手提问:“某科技公司为何突然更换高层领导&am…...
【yolo】YOLO训练参数输入之模型输入尺寸
模型输入尺寸是YOLO训练和推理过程中非常重要的参数之一。YOLO要求输入图像的尺寸是固定的,通常为正方形(如416416、640640等)。这个尺寸直接影响模型的性能和速度。以下是对模型输入尺寸的详细介绍: 1. 模型输入尺寸的作用 统一…...
[原创](Modern C++)现代C++的关键性概念: 如何声明一个返回数组指针的函数?
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...
1204. 【高精度练习】密码
文章目录 题目描述输入输出样例输入样例输出数据范围限制CAC代码 题目描述 人们在做一个破译密码游戏: 有两支密码棒分别是红色和蓝色,把红色密码棒上的数字减去蓝色 密码棒上的数字,就是开启密码锁的密码。 现已知密码棒上的数字位数不超过…...
DigitalFoto公司如何用日事清流程管理工具实现任务优先级与状态可视化?
一、业务介绍 在DigitalFoto,设计和制造先进的摄影器材,如稳定器、灯光设备和支架,是日常工作的核心。公司的业务模式包括为其他品牌设计和制造定制产品,无论是作为OEM还是ODM。这样的多样化业务需求推动了公司在产品开发上必须非…...
解锁C++编程能力:基础语法解析
C入门基础 一、C的第一个程序二、命名空间三、C输入&输出四、缺省参数/默认参数五、函数重载六、引用1.引用的特性2.引用的使用引用做返回值场景 3.const引用只有指针和引用涉及权限放大、缩小的问题,普通变量没有 4.指针和引用的关系 七、inline八、nullptr 一…...
【Leetcode 每日一题】2680. 最大或值
问题背景 给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k。每一次操作中,你可以选择一个数并将它乘 2 2 2。 你最多可以进行 k k k 次操作,请你返回 n u m s [ 0 ] ∣ n u m s [ 1 ] ∣ . . . ∣ n u m …...
YOLO魔改之SAM空间注意力模块
基于SAM注意力的YOLOv7改进算法详解(可用于工业检测方案) 一、应用场景说明 本改进算法适用于以下工业检测场景: 复杂背景下的微小目标检测(电子元件缺陷、PCB板焊点)密集目标重叠检测(传送带上的包裹分拣、人群计数)动态环境目标追踪(无人机巡检、自动驾…...
基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究
基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究 一、引言 筏式养殖在水产养殖业中占据重要地位,吊笼作为养殖贝类、藻类等生物的关键器具,其清洁程度直接影响养殖生物的健康与产量。传统的吊笼清洗方式多依赖人工,效率低下、劳动强度大且清洗…...
Day11 动态规划入门
动态规划 就是 : 给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法. 记忆化搜索 暴力dfs 记录答案 动态规划入门思…...
配置阿里云yum源
配置阿里云yum源 修改默认的yum仓库,把原有的移动到创建的目录里(踢出国外的yum源) # 切换到/ect/yum.repos.d/目录下 cd /etc/yum.repos.d/ # 新建repo目录 mkdir repo # 把原有的移动到创建的目录里 mv ./*.repo ./repo/配置yum源 # 找到…...
在Linux系统安装Ollama两种方法:自动安装和手动安装,并配置自启动服务
目录 一、命令自动安装 (一)使用命令行安装 (二)配置环境变量 (三)重新加载systemd配置并重启服务 二、手动安装 (一)下载本地文件 (二)解压并安…...
Python Django入门(创建应用程序)
在本章中,你将学习如何使用 Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。 我们将为这…...
HCIP-2 RSTP快速生成树
HCIP-2 RSTP快速生成树 STP的不足: 1.STP的端口角色过于简单不丰富,部署时不能很好的应用与较为复杂的网络环境中。 2.STP的迁移状态过于冗长,侦听、学习、阻塞状态下都是不转发业务流量。 3.STP的算法较为繁琐。 TCN TCA TC。 4.STP被动…...
软考-软件设计师-计算机网络
一、七层模型 中继器:信号会随着距离的增加而逐渐衰减,中继器可以接受一端的信息再将其原封不动的发给另一端,起到延长传输距离的作用; 集线器:多端口的中继器,所有端口公用一个冲突域; 网桥&…...
夸克网盘任务脚本——进阶自动版
脚本是用于自动管理和更新夸克云盘(Quark Cloud Drive)上的文件和目录的Python脚本。其主要功能包括自动下载、更新、重命名、删除文件和文件夹,以及处理和发送通知,可以在特定的时间间隔内运行,根据配置文件进行操作。 主要功能 1. Quark 类: __init__:初始化类,设置…...
squirrel语言全面介绍
Squirrel 是一种较新的程序设计语言,由意大利人 Alberto Demichelis 开发,其设计目标是成为一个强大的脚本工具,适用于游戏等对大小、内存带宽和实时性有要求的应用程序。以下是对 Squirrel 语言的全面介绍: 语言特性 动态类型&a…...
北京南文观点:品牌如何抢占AI 认知的 “黄金节点“
在算法主导的信息洪流中,品牌正在经历一场隐蔽的认知权争夺战,当用户向ChatGPT咨询"哪家新能源车企技术最可靠"时,AI调取的知识图谱数据源将直接决定品牌认知排序。南文乐园科技文化(北京)有限公司ÿ…...
使用Python在Word中创建、读取和删除列表 - 详解
目录 工具与设置 Python在Word中创建列表 使用默认样式创建有序(编号)列表 使用默认样式创建无序(项目符号)列表 创建多级列表 使用自定义样式创建列表 Python读取Word中的列表 Python从Word中删除列表 在Word中ÿ…...
分布式中间件:RabbitMQ确认消费机制
分布式中间件:RabbitMQ确认消费机制 在分布式系统中,消息队列是实现异步通信和系统解耦的重要组件。RabbitMQ 作为一款功能强大的消息队列中间件,提供了丰富的特性来保证消息的可靠传输和消费。其中,确认消费机制是确保消息被正确…...
Redis的大Key问题如何解决?
大家好,我是锋哥。今天分享关于【Redis的大Key问题如何解决?】面试题。希望对大家有帮助; Redis的大Key问题如何解决? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis的大Key问题指的是存储在Redis中的某些键(Key…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(25):解释说明:という
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(25):解释说明:という 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习语法(2) 解释说明:という3、单词(1)日语单词(2)日语片假名单词4、相近词辨析5、单词辨析记录6、总结1、前言 (1)情况说明 …...
Windows10配置OpenJDK11
下载 # 华为OpenJDK镜像源 https://mirrors.huaweicloud.com/openjdk/11.0.2/解压 # 解压后至于C:\Dev\Env\Java\jdk-11.0.2目录下 https://mirrors.huaweicloud.com/openjdk/11.0.2/openjdk-11.0.2_windows-x64_bin.zip编译安装 # 以管理员身份运行 CMD命令提示符 并进入JD…...
Python实验:读写文本文件并添加行号
[实验目的] 熟练掌握内置函数open()的用法;熟练运用内置函数len()、max()、和enumerate();熟练运用字符串的strip()、ljust()和其它方法;熟练运用列表推导式。 [实验和内容] 1.编写一个程序demo.py,要求运行该程序后࿰…...
什么是 NDC 坐标?什么是世界坐标?
什么是 NDC 坐标(归一化设备坐标)? 定义 NDC(Normalized Device Coordinates) 是三维图形渲染管线中的中间坐标系统,范围为 [-1, 1](x、y、z 轴均为此范围)。它是设备无关的标准化…...
25年护网二面
《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...