25某团校招后端开发一面
一、进程通信和线程通信方式
进程通信方式
- 管道(Pipe)
半双工通信,数据单向流动,仅用于有亲缘关系的进程(如父子进程)。通过内核缓冲区实现数据传输,如父进程写、子进程读。 - 命名管道(FIFO)
同样半双工,但允许无亲缘关系的进程通信。在磁盘上有对应节点,进程通过文件名访问,解决了普通管道只能在亲缘进程间使用的限制。 - 消息队列(Message Queue)
内核中由消息链表构成,通过消息类型标识。进程可按自定义条件发送或接收消息(如按类型读取),克服了信号信息量少、管道无格式等缺点。 - 共享内存(Shared Memory)
映射一段可被多个进程访问的内存区域,进程直接读写共享内存交换数据,无需多次拷贝,效率高。常配合信号量等同步机制,解决读写同步问题。 - 信号量(Semaphore)
本质是计数器,用于控制多进程对共享资源的访问,确保互斥或同步。例如,防止多个进程同时访问临界资源。 - 套接字(Socket)
支持不同主机间的进程通信,是网络通信的基本构件,适用于分布式场景。 - 信号(Signal)
一种较复杂的通信方式,用于通知进程某个事件发生(如程序异常终止、键盘中断等),属于异步通信。
线程通信方式
1. 共享内存方式
线程共享程序的公共状态(如堆内存中的变量)。通过 volatile
关键字保证内存可见性,即一个线程修改共享变量后,其他线程能及时感知。例如,线程 A 修改 volatile
修饰的变量后,需将更新刷新到主内存,线程 B 从主内存读取更新后的值,实现隐式通信。
2. wait, notify 机制
基于 Object 类,在synchronized代码块中使用。wait使线程释放内置锁并等待;notify随机唤醒单个等待线程;notifyAll唤醒所有等待线程,用于生产者 - 消费者等模型。
3. Lock, Condition 机制
来自 Java 并发包。Lock提供灵活锁操作,Condition配合Lock。await让线程释Lock锁等待,signal唤醒单个、signalAll唤醒所有等待线程,用于复杂多线程协作场景。
4. 管道流通信
通过 PipedOutputStream
、PipedInputStream
(面向字节)或 PipedReader
、PipedWriter
(面向字符)实现。基于循环缓冲数组,写满时写线程阻塞,读空时读线程阻塞,适用于线程间直接数据传输。
二、JVM内存模型和Java内存模型(JMM)
JVM内存区域则定义了不同组件的存储位置,而JMM则保证了线程间通信的原子性、可见性和有序性。
JVM内存模型:
Java内存模型(JMM):
三、kafka消息传递如何确保消息有序
1.生产者端
- 固定 Key 分区:按业务特性选用户 ID、订单 ID 等唯一且关联业务的字段作消息 Key,Kafka 据此分配分区,相同 Key 消息入同一分区,保证分区内消息顺序,如订单消息用订单 ID 作 Key。
- 同步发送消息:使用
send().get()
同步发送,等待服务器响应确保消息成功发送后再发下一条,避免异步乱序,但降低发送效率。 - 开启幂等性:设置
enable.idempotence=true
开启幂等性,Kafka 对消息去重,防止重试导致的乱序和重复问题。
2.Kafka Topic 设计
高顺序要求时,将 Topic 分区设为 1,因单分区内消息天然有序,可简化顺序管理,但可能影响吞吐量。
3.消费端
- 单消费者消费单分区:消费者组内保证一个分区仅由一个消费者消费,避免多消费者并行处理打乱分区内消息顺序,合理分配分区保证顺序消费。
- 串行处理消息:业务逻辑采用串行处理,按接收顺序处理消息,防止并发重排,但可能影响处理性能,需结合业务权衡。
四、二叉树层序遍历算法手撕
import java.util.*;/** public class TreeNode {* int val = 0;* TreeNode left = null;* TreeNode right = null;* public TreeNode(int val) {* this.val = val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param root TreeNode类* @return int整型ArrayList<ArrayList<>>*/public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();ArrayList<ArrayList<Integer>> arrli = new ArrayList<>();// write code hereif (root == null) return arrli;queue.offer(root);while (!queue.isEmpty()) {ArrayList<Integer> tm = new ArrayList<>();int tmp=queue.size();for (int i = 0; i < tmp; i++) {TreeNode p=queue.poll();tm.add(p.val);if (p.left != null)queue.offer(p.left);if (p.right != null)queue.offer(p.right);}arrli.add(tm);}return arrli;}
}
java中queue的LinkedList实现类方法
操作类型 | 抛出异常 | 返回特殊值 |
---|---|---|
插入元素 | add(E e) | offer(E e) |
删除元素 | remove() | poll() |
获取队首元素 | element() | peek() |
五、TCP、UDP区别
- 连接性:TCP 是面向连接的,需 “三次握手” 建立连接和 “四次挥手” 断开连接;UDP 是无连接的,直接发送数据。
- 可靠性:TCP 提供可靠传输,通过序列号、确认应答等确保数据无差错、不丢失、不重复且按序到达;UDP 不保证可靠传输,不关心数据是否正确到达。
- 传输效率:TCP 因建立连接、确认应答等操作,效率较低,开销大;UDP 无需这些操作,效率高,开销小。
- 传输速度:TCP 有额外开销,速度相对慢;UDP 无额外开销,速度快。
- 流量与拥塞控制:TCP 有流量控制和拥塞控制机制,能根据接收方能力和网络状况调整发送速率;UDP 没有这些机制。
- 首部开销:TCP 首部可变,最短 20 字节,最长 60 字节;UDP 首部固定为 8 字节。
- 应用场景:TCP 适用于文件传输、网页浏览等对数据准确性要求高的场景;UDP 适用于在线视频、游戏等对实时性要求高的场景。
六、TCP哪一层协议、HTTP哪一层协议,http和https区别
TCP 是传输层协议,HTTP 是应用层协议。
http和https区别:
- 安全性:HTTP 数据以明文传输,容易被监听、篡改和窃取;HTTPS 对数据进行加密,通过 SSL/TLS 协议保证数据的安全性和完整性,防止信息泄露和中间人攻击。
- 连接方式:HTTP 连接较为简单,客户端发送请求,服务器响应后连接结束;HTTPS 在连接前需进行 SSL/TLS 握手,以验证服务器身份和协商加密算法等参数。
- 端口:HTTP 默认使用 80 端口;HTTPS 默认使用 443 端口。
- 证书:HTTP 不需要数字证书;HTTPS 要求服务器拥有由权威证书颁发机构颁发的数字证书,供客户端验证服务器身份。
- 性能与成本:HTTP 没有加密和解密过程,性能较好,且无需购买证书,成本较低;HTTPS 因加密和解密会消耗一定计算资源和时间,性能略差,且需要购买和维护 SSL/TLS 证书,成本较高。
七、https如何进行加密
HTTPS 采用对称加密和非对称加密结合的方式进行加密。
- 客户端发起 HTTPS 请求:客户端通过输入 HTTPS 网址,向服务器发起请求,尝试连接到服务器的 443 端口。
- 服务器发送 SSL 证书:服务器收到请求后,向客户端发送一个 SSL 证书,包含服务器的公钥、证书颁发机构的信息、证书的有效期等。
- 客户端验证 SSL 证书:客户端收到证书后,检查证书的颁发机构是否可信、证书是否过期、证书中的域名是否与请求的域名一致等,确保服务器身份的真实性。
- 密钥交换:如果证书验证通过,客户端生成一个随机的对称密钥(会话密钥),使用服务器证书中的公钥对其加密,然后发送给服务器。服务器收到后,使用自己的私钥解密,获取对称密钥。至此,客户端和服务器都拥有了相同的对称密钥。
- 数据传输:密钥交换完成后,客户端和服务器之间使用对称密钥对传输的数据进行加密和解密。同时,HTTPS 还使用消息认证码等机制,基于密钥的哈希函数对传输的数据进行校验,确保数据的完整性和真实性。
八、http中有哪些状态码,各种状态码分别代表什么
1xx | 消息,这一类型的状态码,代表请求已被接受,需要继续处理。但是一般服务器禁止向客户端发送此类状态码; |
2xx | 成功,这一类型的状态码,代表请求已成功被服务器接收、理解、并接受; |
3xx | 重定向,这类状态码代表需要客户端采取进一步的操作才能完成请求; |
4xx | 请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理; |
5xx | 服务器错误,这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。 |
1xx 信息性状态码
- 100 Continue:客户端应继续其请求。服务器已收到请求的第一部分,正在等待其余部分。
2xx 成功状态码
- 200 OK:请求成功,服务器已成功处理了请求并返回了请求的资源。
- 201 Created:请求成功,并且服务器创建了新的资源。通常在 POST 请求创建新对象时返回。
- 204 No Content:请求成功,但服务器没有返回任何内容。常用于只需要执行服务器端操作而不需要返回数据的情况。
3xx 重定向状态码
- 301 Moved Permanently:请求的资源已被永久移动到新的 URL。客户端应使用新的 URL 进行后续请求。
- 302 Found:请求的资源临时移动到了新的 URL。客户端应使用新的 URL 进行本次请求,但后续请求仍可使用原 URL。
- 304 Not Modified:客户端发送了附带条件的请求,且服务器发现资源未被修改,客户端可以使用缓存的版本。
4xx 客户端错误状态码
- 400 Bad Request:客户端发送的请求有语法错误,服务器无法理解。
- 401 Unauthorized:客户端请求需要用户认证。通常是因为未提供有效的身份验证信息或身份验证失败。
- 403 Forbidden:服务器理解请求,但拒绝执行该请求。客户端没有足够的权限访问请求的资源。
- 404 Not Found:服务器无法找到请求的资源。可能是 URL 输入错误或资源已被删除。
5xx 服务器错误状态码
- 500 Internal Server Error:服务器内部发生错误,无法完成请求。通常是服务器端代码出现问题或服务器配置错误。
- 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到了无效的响应。
- 503 Service Unavailable:服务器暂时无法处理请求,通常是由于服务器过载或正在维护中。
九、Java垃圾回收算法
JVM 的垃圾回收(Garbage Collection,简称 GC)是一种自动内存管理机制,用于回收不再使用的内存空间,以避免内存泄漏和内存溢出。在 Java 程序中,对象的创建和销毁是动态的,当一个对象不再被引用时,它所占用的内存空间就可以被回收。垃圾回收器会定期或在内存不足时自动检测并回收这些不再使用的对象。
垃圾回收算法
- 标记 - 清除算法(Mark-Sweep):先标记出需要回收的对象,然后统一清除这些被标记的对象。(注意:这里所谓的清除并不是真的置空,而是把需要清除的对象地址保存在空闲的地址列表里。下次有新对象需要加载时,判断垃圾的位置空间是否够,如果够,就存放覆盖原有的位置。)
- 标记 - 整理算法(Mark-Compact):先标记出存活的对象,然后将这些存活对象向一端移动,最后清理掉边界以外的内存空间。
- 复制算法(Copying):将内存空间划分为两个相等的区域,每次只使用其中一个区域。当该区域内存不足时,将存活的对象复制到另一个区域,然后清除当前区域的所有对象。
- 分代收集算法(Generational Collection):根据对象的存活周期将内存划分为不同的区域,一般分为新生代和老年代。不同的区域采用不同的垃圾回收算法,例如新生代采用复制算法,老年代采用标记 - 清除或标记 - 整理算法。
标记 - 清除算法原理
- 标记阶段:从根对象(如栈中的引用、静态变量等)开始,遍历所有可达对象,并标记需要回收的对象。
- 清除阶段:遍历整个内存空间,将所有标记的对象占用的内存空间回收。
标记 - 整理算法原理
- 标记阶段:与标记 - 清除算法相同,从根对象开始,遍历所有可达对象,并标记为存活对象。
- 整理阶段:将所有存活对象向内存空间的一端移动,使它们连续存储,然后清理掉边界以外的内存空间。
标记 - 清除和标记 - 整理算法的区别
- 内存碎片:标记 - 清除算法会产生大量的内存碎片,导致后续分配大对象时可能无法找到足够的连续内存空间。而标记 - 整理算法通过移动存活对象,避免了内存碎片的产生。
- 性能开销:标记 - 整理算法的性能开销相对较大,因为它需要移动存活对象,涉及到对象的复制和内存地址的更新。而标记 - 清除算法只需要标记和清除对象,不需要移动对象,性能开销相对较小。
相关文章:
25某团校招后端开发一面
一、进程通信和线程通信方式 进程通信方式 管道(Pipe) 半双工通信,数据单向流动,仅用于有亲缘关系的进程(如父子进程)。通过内核缓冲区实现数据传输,如父进程写、子进程读。命名管道ÿ…...
音视频学习(三十四):H264中的宏块
什么是宏块? 在 H.264 中,宏块是编码图像时最小的处理单位。它的核心作用包括: 帧内预测(Intra Prediction)帧间预测(Inter Prediction)变换、量化、熵编码等 标准定义: 一个宏块…...
Pandas 中透视表(`pivot_table`)和交叉表(`crosstab`)的区别
Pandas 中透视表(pivot_table)和交叉表(crosstab)的区别 核心区别 透视表 (pivot_table) 用于对数据进行 聚合计算(如求和、均值、计数等)。支持多维度分组(行、列、甚至多层索引)。…...
Restful风格接口开发
目录 Restful Apifox 介绍 端口号8080怎么来的? 为什么要使用Apifox? Restful 如果请求方式是Post,那我就知道了要执行新增操作,要新增一个用户 如果请求方式是Put,那就代表我要修改用户 具体要对这些资源进行什么样的操…...
20250414| AI:RAG多路召回和融合重排序技术
好的!以下是对RAG(检索增强生成)中多路召回和融合重排序技术的详细解释,结合解释学习的视角,帮助你更好地理解和学习。这些技术是RAG系统的核心组成部分,决定了检索阶段的效果和最终生成答案的质量。我会尽…...
基于时间序列分解与XGBoost的交通通行时间预测方法解析
一、问题背景与数据概览 在城市交通管理系统中,准确预测道路通行时间对于智能交通调度和路径规划具有重要意义。本文基于真实道路传感器数据,构建了一个结合时间序列分解与机器学习模型的预测框架。数据源包含三个核心部分: 道路通行数据(new_gy_contest_traveltime_train…...
论文精度:HeightFormer:基于Transformer的体素高度预测在路边3D目标检测中的应用
论文地址:https://arxiv.org/pdf/2503.10777 1. 背景与问题定义 1.1 路边视觉3D检测的重要性 在自动驾驶领域,车辆端的视觉感知系统面临视角局限性(如遮挡、短距离感知)和安全挑战。相比之下,路边摄像头通过高位安装,可覆盖更广的感知范围(如交叉路口、高速公路)…...
华为手机清理大数据的方法
清理手机最大的问题是,手动和自动清理了多次,花费了很长时间,但是只腾挪出来了一点点空间,还是有很大空间无法使用,这篇文章就告诉你怎样做,以花瓣剪辑为例,如下: 删除数据ÿ…...
tcp特点+TCP的状态转换图+time_wait详解
tcp特点TCP的状态转换图time wait详解 目录 一、tcp特点解释 1.1 面向连接 1.1.1 连接建立——三次握手 1.1.2 连接释放——四次挥手 1.2 可靠的 1.2.1 应答确认 1.2.2 超时重传 1.2.3 乱序重排 1.2.4 去重 1.2.5 滑动窗口进行流量控制 1.3 流失服务(字节…...
flutter 桌面应用之窗口自定义
在开发桌面软件的时候我们经常需要配置软件的窗口的大小以及位置 我们有两个框架选择:window_manager和bitsdojo_window 对比bitsdojo_window 特性bitsdojo_windowwindow_manager自定义标题栏✅ 支持❌ 不支持控制窗口行为(大小/位置)✅(基本…...
【C++】NAN相关研究
先说结论:NAN对比一切都是false INF 对INF 是true 正无穷与正无穷比较相等,正无穷与负无穷比较不相等 window linux环境下基本相同, debug release基本相同 NAN -NAN INF -INF 不做论述 // TestNan.cpp : 此文件包含 "main" 函数。…...
windows下Git安装及其IDEA配置
1.下载Git安装包 阿里镜像链接(建议从这里下载,速度很快) git-scm.com(官方网站,提供了各个平台(Windows、Mac、Linux)的安装程序) 选择版本号后,在选择此版本的不同包…...
迷你世界脚本脚本常见问题
脚本常见问题 彼得兔 更新时间: 2024-05-22 17:54:44 在查阅开发者学院中的脚本API时,若有任何问题或建议,欢迎通过问卷进行反馈!【点我填写问卷】 1.Block中的data在什么地方使用 data使用有具体需求,此处不建议开发者使用。开发者尽可能使…...
2025蓝桥杯C++ A组省赛 题解
昨天打完蓝桥杯本来想写个 p y t h o n python python A A A 组的题解,结果被队友截胡了。今天上课把 C A CA CA 组的题看了,感觉挺简单的,所以来水一篇题解。 这场 B B B 是一个爆搜, C C C 利用取余的性质比较好写&#…...
链接世界:计算机网络的核心与前沿
计算机网络引言 在数字化时代,计算机网络已经成为我们日常生活和工作中不可或缺的基础设施。从简单的局域网(LAN)到全球互联网,计算机网络将数以亿计的设备连接在一起,推动了信息交换、资源共享以及全球化的进程。 什…...
MySQL 常见存储引擎全解析:InnoDB、MyISAM、Memory 等对比与实战
一、什么是存储引擎? 存储引擎(Storage Engine)是 MySQL 中负责数据存储与管理的底层模块。不同的存储引擎负责处理表的读写、索引维护、事务支持、崩溃恢复等机制。 在创建表时可以指定使用的存储引擎: CREATE TABLE user (id…...
21天Python计划:零障碍学语法(更新完毕)
目录 序号标题链接day1Python下载和开发工具介绍https://blog.csdn.net/XiaoRungen/article/details/146583769?spm1001.2014.3001.5501day2数据类型、字符编码、文件处理https://blog.csdn.net/XiaoRungen/article/details/146603325?spm1011.2415.3001.5331day3基础语法与…...
Python中NumPy的统计运算
在数据分析和科学计算领域,Python凭借其丰富的库生态系统成为首选工具之一,而NumPy作为Python数值计算的核心库,凭借其高效的数组操作和强大的统计运算功能,广泛应用于机器学习、信号处理、统计分析等场景。本文将系统介绍NumPy在…...
SQL 解析 with as
sql的运行顺序 <select id"getTrendList" parameterType"java.util.HashMap" resultType"java.util.Map"><![CDATA[WITH-- 生成连续年份列表(当前年前8年到前1年)year_range AS (SELECT EXTRACT(YEAR FROM SYSD…...
07-算法打卡-链表-移除链表-leetcode(203)-第七天
1 题目地址 203. 移除链表元素 - 力扣(LeetCode)203. 移除链表元素 - 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1:[https://assets.leetc…...
抓包神器,自研EtherCAT抓包工具
大家好,博主自研了一款以太网抓包神器,可以用于EtherCAT抓包。 把抓包工具接入以太网总线中,就能正常使用了。 上位机软件采用wireshark。 开启以下协议 抓包截图如下 时间戳的精度为5ns。...
五、adb常用命令
SDK路径下的 \Android\Sdk\platform-tools\adb.exe adb devices 查看连接的设备 adb shell getprop ro.build.version.release 查看系统版本 adb shell dumpsys window windows | findstr mFocusedApp 获取正在运行的app启动包名 结果为空,我不知道是不是Android…...
Java第四节:idea在debug模式夏改变变量的值
作者往期文章 Java第一节:debug如何调试程序(附带源代码)-CSDN博客 Java第二节:debug如何调试栈帧链(附带源代码)-CSDN博客 Java第三节:新手如何用idea创建java项目-CSDN博客 步骤一 在需要修改…...
Java学习手册:Java反射与注解
Java反射(Reflection)和注解(Annotation)是Java语言中两个强大的特性,它们在框架开发和复杂应用中扮演着重要角色。反射允许程序在运行时检查和操作类、对象、接口、字段和方法,而注解则提供了一种元数据形…...
21 天 Python 计划:MySQL事务四大隔离级别深度剖析
文章目录 一、事务1.1 什么是事务?1.2 事务的四大特性 二、事务并发存在的问题2.1 脏读(dirty read)2.2 不可重复读(unrepeatable read)2.3 幻读 三、事务的四大隔离级别实践3.1 读未提交(Read Uncommitted…...
IO多路复用沉浸式体验
这篇文章主要讲解一下IO多路复用常见问题,包含常见面试题,对你有帮助的话可以留个赞和关注嘛?谢谢大家支持! 1.epoll 相比于 select/poll 的优点有哪些? 高效的数据结构:epoll使用红黑树管理fd࿰…...
音视频学习(三十三):GOP详解
GOP 概念 GOP(图像组)是视频编码中一组帧的集合(按相关性分组),它从一个关键帧(I帧)开始,后面跟随若干个参考帧(P帧)和预测帧(B帧)。其结构决定了视频帧的压…...
部署YUM仓库
目录 一.YUM 1.1yum概述 1.2yum的实现 1.3yum服务的组成 1.4yum服务实现过程 1.5yum配置文件位置 二.yum相关命令 三.搭建yum仓库的方式 3.1使用HTTP方式搭建yum仓库 准备工作(服务端和客户端都需要做) 服务端 客户端 3.2使用ftp方式搭建yu…...
中位数学习(低估它了)
-----------------------------------------------------------------中位数------------------------------------------------------- 中位数有一个很好的性质:假设有一批数据,你想找一个数,使得这批数据与它差的绝对值的和最小࿰…...
音视频转换器 AV 接口静电保护方案
方案简介 音视频转换器是将音视频(AV)信号转换成其他格式或信号类型的设备或软件。 它能够实现大多数视频、音频以及图像格式之间的转换,包括但不限于 RMVB、AVI、 MP4、MOV 等常见格式,同时也支持将不同采样率、位深度、声道数…...
蓝桥杯嵌入式第十二届省赛程序设计1(超简单版)
此程序只需要会C语言数组,结构体(struct),for , if , switch(也可以用if)就能够实现。 引脚设置: 引脚配置(参照笔记): 代码部分: /* USER CODE END Header */ /* Includes ------------------…...
CSS 链接样式学习笔记
在网页设计中,链接(<a> 标签)是不可或缺的元素,通过 CSS 可以对链接进行丰富的样式设置,从而提升用户体验和页面美观度。以下是关于 CSS 链接样式的详细学习笔记。 一、链接的四种状态 链接有四种不同的状态&a…...
有ts文件却无法ts出来解决办法
一开始报错是报这个,但是我其实完全看不懂为什么 原因是这个 打开某个test就行了...
javaSE.Lambda表达式
如果一个接口中有且只有一个待实现的抽象方法,那么我们可以将匿名内部类简写为Lambda表达式。 简写规则 标准格式: (【参数类型 参数名称,】...) -> {代码语句, 包括返回值} 只有一行花括号{}可以省略。…...
Web渗透之文件包含漏洞
文件包含漏洞原理 1、源代码 <?php$filename $_GET[filename]; include $filename; //或include_once,require,require_onceecho "欢迎来到PHP的世界.";?> 2、利用条件 php.ini中alllow_url_fopenOn(默认开启)和allow_url_includeOff(默认关闭)要开启…...
费马引理和罗尔定理
cheer 向……欢呼,使高兴,欢呼,欢呼,愉快 前言区间平均值费马引理罗尔三步万能构造原函数的方法什么时候用罗尔定理计划拉格朗日需要记忆的不等式柯西中值定理泰勒高阶导数判断极值最后 前言 继续学习。今天争取把讲义和作业题都…...
【合新通信】浸没式液冷中低成本冷媒开发的最新进展
浸没式液冷光模块是一种结合高效散热技术与光通信的新型解决方案,主要用于数据中心、超算中心等高密度计算场景。其核心特点是通过将光模块直接浸入绝缘冷却液中(如矿物油、氟化液等),实现高效散热和节能降耗。低成本冷却液的研发…...
【开发记录】服务外包大赛记录
参加服务外包大赛的A07赛道中,最近因为频繁的DEBUG,心态爆炸 记录错误 以防止再次出现错误浪费时间。。。 2025.4.13 项目在上传图片之后 会自动刷新 没有等待后端返回 Network中的fetch /upload显示canceled. 然而这是使用了VS的live Server插件才这样&…...
智能指针之设计模式1
本文探讨一下智能指针和GOF设计模式的关系,如果按照设计模式的背后思想来分析,可以发现围绕智能指针的设计和实现有设计模式的一些思想体现。当然,它们也不是严格意义上面向对象的设计模式,毕竟它们没有那么分明的类层次体系&…...
Spring Boot 中应用的设计模式
Spring Boot 中应用的设计模式详解 Spring Boot 作为 Spring 框架的扩展,广泛使用了多种经典设计模式。以下是主要设计模式及其在 Spring Boot 中的具体应用: 一、创建型模式 1. 工厂模式 (Factory Pattern) 应用场景: BeanFactory 和 Ap…...
23种GoF设计模式
GoF(Gang of Four)设计模式是由四位计算机科学家 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的书籍《Design Patterns: Elements of Reusable Object-Oriented Software》中提出的设计模式 目录 一、创建型模式(Cre…...
Python实例题:Python实现中文错别字高亮系统
目录 Python实例题 题目 安装依赖库 代码实现 代码解释 运行思路 注意事项 Python实例题 题目 Python实现中文错别字高亮系统 安装依赖库 在开始之前,你需要安装 pycorrector 和 rich 库。可以使用以下命令进行安装: pip install pycorrecto…...
【第三十一周】ViT 论文阅读笔记
ViT 摘要Abstract文章信息引言方法Patch EmbeddingPatch Position EmbeddingTransformer EncoderMLP Head整体架构CNN的归纳偏置 代码实现实验结果总结 摘要 本篇博客介绍了Vision Transformer(ViT),这是一种突破性的图像分类模型ÿ…...
射频(RF)静电放电防护方案
方案简介 射频(RF)是 Radio Frequency 的缩写,表示可以辐射到空间的电磁频率,频率 范围从 300kHz~300GHz 之间。射频就是射频电流,简称 RF,它是一种高频交流变化 电磁波的简称。射频天线是一…...
【redis进阶三】分布式系统之主从复制结构(1)
目录 一 为什么要有分布式系统? 二 分布式系统涉及到的非常关键的问题:单点问题 三 学习部署主从结构的redis (1)创建一个目录 (2)进入目录拷贝两份原有redis (3)使用vim修改几个选项 (4)启动两个从节点服务器 (5)建立复制,要想配…...
排序(1)
排序(1) 日常生活中,有很多场景都会用到排序。比如你买东西,在购物软件就有几种展现方式,按照评论数量给你排序出来,让你选,还是说按照价钱高低排序出来让你选。 排序其实是一种为了更好解决问…...
NR 5G中的N5接口
N5接口的定义: Reference point between the PCF and an AF or TSN AF. 即N5 PCF和AF之间的参考点。 AF Application Function 应用功能,指应用层的各种服务,可以是运营商内部的应用如Volte AF(类似4G的Volte As)、也可以是第三方的AF&…...
STM32自学进阶指南:从入门到精通的成长路径 | 零基础入门STM32第九十九步
主题内容教学目的/扩展视频自学指导通过数据手册和搜索引擎查找资料,独立解决问题以积累经验和提升能力。自学过程中应保持敬畏之心,不断总结未知领域,持续进步。师从洋桃电子,杜洋老师 📑文章目录 一、自学指导全景图1.1 学习路线对比1.2 关键学习策略二、待探索技术领域…...
利用 Python 进行股票数据可视化分析
在金融市场中,股票数据的可视化分析对于投资者和分析师来说至关重要。通过可视化,我们可以更直观地观察股票价格的走势、交易量的变化以及不同股票之间的相关性等。 Python 作为一种功能强大的编程语言,拥有丰富的数据处理和可视化库…...
用 Vue.js 构建基础购物车:从 0 到 1 的实战解析
在当今数字化购物的浪潮中,购物车功能已成为电商平台不可或缺的一部分。它不仅承担着记录用户所选商品的重任,还需提供流畅的交互体验和精准的计算逻辑。本文将深入探讨如何利用 Vue.js 这一强大的 JavaScript 框架,逐步搭建一个基础但功能完…...