Java秋招面经(网搜版)
1.redis的数据结构
Redis 提供了多种高效的数据结构来满足不同的应用需求。主要包括字符串(String),这是最基础的数据类型,支持存储和操作各种数据;哈希(Hash),类似于键值对的集合,适合存储对象和结构化数据;列表(List),实现为双向链表,支持从两端插入和删除元素;集合(Set),存储唯一元素并支持集合运算如交集和并集;有序集合(Sorted Set),每个元素都有一个分数,按分数排序,非常适合排行榜应用;位图(Bitmap),用于高效地处理布尔值数据;HyperLogLog,能以很小的内存开销估计集合中不同元素的数量;地理空间(Geo),用于存储和计算地理位置数据;流(Stream),适合处理实时数据流和日志。每种数据结构在 Redis 中都有其独特的操作方式,能够高效地处理不同类型的数据和应用场景。
字符串 (String)
描述:最基本的数据类型,可以存储文本、数字、二进制数据等。
操作:支持设置、获取、追加、修改、删除等操作。也支持原子操作如自增、自减等。
哈希 (Hash)
描述:类似于 Java 的 Map 或 Python 的字典,存储键值对集合。
操作:支持对哈希中的字段进行设置、获取、删除等操作,非常适合存储对象或结构化数据。
列表 (List)
描述:双向链表实现的有序集合,可以在列表的头部或尾部进行插入和删除操作。
操作:支持从列表两端推入、弹出元素,也支持通过索引访问、范围查询等操作。
集合 (Set)
描述:无序集合,支持存储唯一元素。
操作:支持添加、删除、检查元素是否存在等操作,并提供集合运算如交集、并集和差集。
有序集合 (Sorted Set)
描述:类似于集合,但每个元素都有一个分数(score),集合中的元素按分数排序。
操作:支持按分数范围查找、获取排名、按分数排序等操作,适合用于排行榜等应用。
位图 (Bitmap)
描述:用位来存储数据,每个位代表一个布尔值。
操作:支持按位操作,如设置、获取和统计位的值,非常适合用于大规模的标志数据。
HyperLogLog
描述:用于基数估计(大规模唯一元素计数),能够以很小的内存开销估计集合中不同元素的数量。
操作:支持添加元素和获取估计值,适合用于需要近似计数的场景。
地理空间 (Geo)
描述:支持地理位置数据的存储和计算。
操作:可以存储地理坐标、计算两点间的距离、查找附近的地点等。
流 (Stream)
描述:日志数据结构,用于高效地处理数据流。
操作:支持按时间戳存储消息、读取消息、消费流等操作,适合用于事件流处理和消息队列。
2.string\hash\set的使用场景和区别
Redis 中的字符串、哈希和集合数据结构各有其独特的使用场景和特点。字符串 (String) 是最基础的数据类型,适合用于存储简单的值,如缓存数据、计数器和消息存储。它操作简单,支持原子性操作如自增,但不适合存储复杂的数据结构。哈希 (Hash) 允许存储结构化的数据对象,每个哈希表由多个字段和对应的值组成,非常适合存储具有多个属性的对象,如用户信息和配置管理。相比字符串,哈希能够对单个字段进行操作,并且在存储多个字段时更节省内存。集合 (Set) 是一个无序且唯一的元素集合,适用于存储不重复的元素并执行集合运算,如交集、并集和差集。集合在处理唯一元素和集合运算方面表现优异,适合用于标签管理、权限控制和推荐系统等场景。每种数据结构在 Redis 中针对不同需求进行了优化,选择适当的数据结构可以有效提高数据操作的效率。
1. 字符串 (String)
使用场景:
缓存数据:存储和缓存简单的数据,如用户会话、配置信息等。
计数器:用于实现自增计数器,如统计页面访问次数。
消息存储:用于存储简单的消息或数据片段,例如用户消息、缓存结果等。
特点:
基本数据类型:Redis 中最简单的数据结构,可以存储文本、数字、二进制数据等。
操作简单:支持获取、设置、删除、追加、批量操作等。
原子性:提供原子操作,如 INCR(自增)和 DECR(自减)。
区别:
数据单一:字符串是单值存储,不支持存储复杂的数据结构。
存储大小:适合存储简单的值,最大支持512MB的大小。
2. 哈希 (Hash)
使用场景:
对象存储:存储具有多个属性的对象,如用户信息、产品详情等。
结构化数据:适合存储键值对集合,便于对对象的各个字段进行操作。
配置管理:用于存储和管理配置信息的各个属性。
特点:
键值对集合:每个哈希表存储一组字段和对应的值。
操作灵活:支持对单个字段进行设置、获取和删除,适合细粒度操作。
内存效率:当哈希表中包含多个字段时,比存储多个字符串更节省内存。
区别:
数据结构复杂:相比字符串,哈希支持存储复杂的对象数据。
字段操作:可以对哈希中的每个字段单独进行操作,而不是操作整个对象。
3. 集合 (Set)
使用场景:
唯一元素存储:存储唯一元素,如用户标签、角色权限等。
集合运算:执行集合运算,如交集、并集和差集,适用于社交网络、权限管理等。
推荐系统:用于处理用户的兴趣集合和推荐算法。
特点:
无序集合:集合中的元素没有特定的顺序。
去重:自动去除重复元素,确保集合中的元素唯一。
集合运算:支持交集、并集、差集等集合运算。
区别:
元素唯一:集合不允许重复元素,适合需要唯一性的场景。
无序:元素没有顺序,适合需要快速查找和集合运算的场景。
总结
字符串 (String) 适合存储简单的数据和计数器操作,操作简单且高效。
哈希 (Hash) 适合存储和操作结构化数据,如对象的多个属性,提供细粒度的数据操作。
集合 (Set) 适合存储唯一元素并进行集合运算,如去重和集合交集、并集等操作。
3.redis的慢查询
Redis 的慢查询日志功能用于监控和记录执行时间较长的命令,以帮助发现和优化性能瓶颈。当某个命令的执行时间超过预设的阈值时,Redis 会将该命令记录到慢查询日志中。这些日志提供了命令的执行时间和具体内容,有助于用户识别系统中的性能问题。慢查询日志的阈值可以通过配置文件中的 slowlog-log-slower-than 参数设置,单位为毫秒,同时 slowlog-max-len 参数用于定义日志的最大条目数。除了通过配置文件设置,用户还可以通过 Redis 命令行界面动态调整这些参数。分析慢查询日志可以帮助优化 Redis 的性能,例如,通过改进数据结构或优化命令使用方式来减少长时间运行的命令。总的来说,慢查询日志是 Redis 性能监控和优化的一个重要工具。
Redis 的慢查询日志功能用于监控和记录执行时间较长的命令,以帮助开发者识别和优化性能瓶颈。通过慢查询日志,您可以发现并改进 Redis 实例中可能导致性能下降的命令或操作。以下是 Redis 慢查询的工作原理和配置方法:
慢查询日志的工作原理
慢查询记录:Redis 通过记录执行时间超过指定阈值的命令来生成慢查询日志。慢查询的定义是指那些运行时间较长的操作,通常会影响 Redis 的整体性能。
记录格式:慢查询日志通常包括命令的执行时间、命令本身以及其他可能影响性能的信息。这些日志帮助用户了解哪些操作在 Redis 实例中花费了较多时间。
配置阈值:用户可以设置一个阈值,表示只有当命令执行时间超过该阈值时才会被记录到慢查询日志中。这个阈值以毫秒为单位配置。
配置慢查询日志
配置文件设置:
打开 Redis 配置文件 redis.conf。
设置 slowlog-log-slower-than 参数来定义慢查询的阈值。例如,slowlog-log-slower-than 10000 表示记录所有执行时间超过 10 秒(10000 毫秒)的命令。
设置 slowlog-max-len 参数来定义慢查询日志的最大长度。例如,slowlog-max-len 128 表示最多保存 128 条慢查询日志。
动态配置:
可以在 Redis 命令行界面使用 CONFIG SET 命令动态调整慢查询阈值。例如,CONFIG SET slowlog-log-slower-than 5000 将阈值设置为 5 秒(5000 毫秒)。
使用 SLOWLOG GET 命令可以查看慢查询日志,显示最近的慢查询记录。
使用场景
性能优化:通过分析慢查询日志,可以识别出执行时间较长的命令或操作,进而进行优化。比如,可能需要调整数据结构、优化命令使用方式或增加硬件资源。
监控:慢查询日志帮助运维人员和开发者了解 Redis 实例的性能状况,及时发现和处理性能瓶颈。
总结
Redis 的慢查询日志功能是性能优化和监控的重要工具,通过记录执行时间超过阈值的命令,帮助用户发现性能问题。可以通过配置文件或动态设置来调整日志记录的阈值和日志长度,定期查看慢查询日志可以有效地优化 Redis 实例的性能。
4.大key怎么解决
首先,拆分大 Key 是一种有效的方法,可以将一个大的数据集合分割成多个小的 Key,这样可以减少单个键的负担。例如,可以将大哈希表拆分为多个小哈希表,或者将大的列表分页存储为多个小列表。其次,优化数据结构 可以显著提升性能,选择更适合的数据结构(如压缩数据结构或 Redis 模块)来替代原生数据结构,能够有效减少内存使用和操作时间。此外,定期清理和优化 也非常重要,通过设置 Key 的过期时间和使用内存管理策略来避免过多的大 Key 积累。监控和分析工具可以帮助及时检测大 Key 的存在,使用 Redis 提供的命令(如 MEMORY USAGE 和 DEBUG OBJECT)来检查 Key 的大小和内存使用情况。和工具(如 Redis-cli 的 redis-cli --bigkeys 命令)来检查内存使用情况和 Key 的大小。最后,数据分布 是一种常用的策略,通过 Redis 集群将数据分片到多个节点上,减少单个节点的负担,并提高系统的扩展性。综合使用这些策略,可以有效缓解大 Key 带来的性能问题,确保 Redis 实例的高效运行。
5.数据一致性
旁路缓存
延时双删
先写 MySQL,通过 Binlog,异步更新 Redis
引用:高频面试:如何保障 MySQL 和 Redis 的数据一致性?
6.redis的锁,需要注意什么问题
首先,锁的安全性至关重要,确保锁的创建是原子的,并且每个锁请求应包含唯一的标识符,防止其他客户端误用或劫持锁。其次,锁的过期时间必须合理设置,以防止锁在持有者崩溃或挂起时被无限期占用。可以通过设置合理的过期时间和使用续期机制来管理锁的生命周期。此外,锁的公平性也是一个需要考虑的问题,避免在高并发环境中出现请求饥饿现象,公平锁机制可以确保请求按照顺序获取锁。锁的可靠性方面,使用 Redlock 算法可以提高分布式环境中锁的可靠性,通过多个 Redis 实例来确保锁的稳定性。在锁的删除操作中,必须确保只有持有锁的客户端可以释放锁,避免死锁或误删除。同时,监控和调试锁的状态也很重要,通过 Redis 的监控工具和日志记录可以帮助排查和解决问题。综合考虑这些因素,可以有效管理和优化 Redis 中的分布式锁。
7.redission需要注意什么问题
在使用 Redisson 时,需要注意几个关键问题以确保其稳定性和有效性。首先,配置和性能调优至关重要。需要根据实际需求合理配置 Redis 连接池和线程池参数,设置适当的超时时间,以避免连接瓶颈和线程池过载。其次,分布式锁和数据一致性也需要特别关注。为锁设置合理的过期时间和续期机制,以防锁因持有者崩溃或操作超时而无法释放,同时确保锁的唯一标识符避免误用。对于使用 Redis 集群或高可用环境的情况,确保 Redisson 配置与 Redis 的集群模式或高可用方案兼容,正确设置分片信息和节点,以保持高可用性和故障转移能力。此外,数据持久性和备份也是不可忽视的方面。需确保 Redis 配置了持久化选项,并定期备份数据,确保在故障情况下数据能够恢复。最后,监控和故障排查是保证系统运行稳定的关键。通过监控工具观察 Redis 性能和状态,并启用日志记录来帮助排查问题,从而保持系统的可靠性和稳定性。综合这些措施,可以有效提高 Redisson 的性能和可靠性。
8.redission的锁续期怎么实现得
在 Redisson 中,锁的续期是通过自动管理锁的过期时间来实现的。当使用 Redisson 的 RLock 实现分布式锁时,Redisson 会自动处理锁的续期,确保锁在持有期间不会因超时而被释放。默认情况下,Redisson 会在锁持有期间定期自动续期,以延长锁的有效时间,从而避免因持有者崩溃或操作超时导致的锁释放。用户可以通过配置参数如 lockWatchdogTimeout 来调整续期的频率和策略,以适应具体的业务需求。如果需要更精细的控制,也可以通过手动续期操作,即在业务逻辑中定期调用加锁方法,来延长锁的过期时间。合理使用这些机制可以确保锁在长时间操作中仍能保持有效,防止因锁超时而导致的系统问题。
9.Java内存模型
Java 内存模型(JMM)定义了多线程环境中变量访问的规则,确保程序在不同硬件和操作系统上以一致的方式执行。主要涉及三个关键方面:内存可见性、原子性和有序性。内存可见性确保一个线程对共享变量的修改对其他线程可见,通常通过 volatile 关键字和 synchronized 关键字实现。原子性保证操作的不可分割性,防止数据竞争,通常通过 synchronized 关键字和 java.util.concurrent 包中的原子类来实现。有序性涉及程序执行的顺序,JMM 允许编译器和处理器对指令进行重排序以提高性能,但必须确保不会破坏程序的正确性。通过 volatile 和 synchronized 的内存屏障,JMM 确保内存操作的顺序性和可见性。总体而言,Java 内存模型通过这些机制管理线程间的共享数据访问,保证了多线程程序的正确性和一致性。
10.GC
垃圾回收(Garbage Collection, GC)是 Java 语言中自动管理内存的机制,旨在回收不再使用的对象以释放内存。Java 的 GC 通过标记-清除、标记-整理和复制等算法来实现内存管理。首先,GC 定期检查堆中的对象,识别不再被引用的对象,并将其标记为垃圾。然后,它会清除这些垃圾对象,并将内存重新分配给新的对象。Java 的垃圾回收器通常包括几个主要组件,如年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation),每个区域有不同的回收策略。年轻代中的对象会经历 minor GC,而年老代中的对象则通过 major GC 进行回收。现代 JVM 实现了多种垃圾回收器,如串行垃圾回收器、并行垃圾回收器、并发标记清除(CMS)垃圾回收器和 G1 垃圾回收器,每种都有不同的特性和优化目标,以适应不同的应用场景。总体而言,GC 机制在自动管理内存的同时,减少了内存泄漏的风险,提高了程序的稳定性和性能。
11.CMS和G1的区别
CMS(Concurrent Mark-Sweep)和 G1(Garbage-First)是 Java 虚拟机中的两种垃圾回收器,它们各自采用不同的策略来优化垃圾回收过程。CMS 垃圾回收器主要设计目标是减少垃圾回收对应用程序的停顿时间。它通过并发标记和清理阶段来尽量减少停顿时间,并在应用程序线程运行时并行执行垃圾回收工作。CMS 包括初始标记、并发标记、重新标记和并发清除四个阶段,其中大部分工作在应用线程并行进行,但可能在终止阶段导致较长的停顿时间。此外,CMS 的主要缺点是可能会产生大量的碎片,导致内存的分配效率降低。
G1 垃圾回收器则设计用于处理大规模堆的回收,目标是提供可预测的停顿时间。G1 将堆划分为多个小区域(Region),并根据区域的回收需要来进行回收操作。G1 通过分阶段的标记和整理过程,优先回收含有大量垃圾的区域,以最小化回收的影响。与 CMS 不同,G1 在回收过程中会进行更细粒度的内存整理,从而减少碎片。虽然 G1 的回收过程较复杂,但它能够更好地控制停顿时间,并在处理大内存应用时表现得更加稳定。
总体而言,CMS 更适合对停顿时间要求不那么严格的应用,而 G1 提供了更好的停顿时间控制和内存碎片管理,适合大规模堆的场景。
相关文章:
Java秋招面经(网搜版)
1.redis的数据结构 Redis 提供了多种高效的数据结构来满足不同的应用需求。主要包括字符串(String),这是最基础的数据类型,支持存储和操作各种数据;哈希(Hash),类似于键值对的集合&…...

【Android】Material Design编写更好的UI
Toolbar 对于控件ActionBar我们非常熟悉,就是我们常见的标题栏,但ActionBar只能位于活动的顶部,因此我们更建议使用Toolbar。在新建一个项目的时候都是默认显示ActionBar,我们要使用Toolbar就需要先将标题栏改为不显示 先来看看…...

剪辑视频,这四大工具助你一臂之力!
在这个数字化的时代,视频已成为一种重要的表达手段。无论您是专业视频制作者还是只是偶尔想要编辑一些个人视频,一款优秀的视频剪辑软件都将是您不可或缺的好帮手。以下是几款值得推荐的视频剪辑软件。 福昕视频剪辑 直达链接:www.pdf365.c…...

基于单片机的热成像测温显示系统设计
本设计基于单片机的热成像测温显示系统,本系统包括STM32F103C6T6微控制器、MLX90640红外温度传感器、TFT-LCD显示屏、AT24C02存储模块、报警模块、按键模块和MP3语音播报模块。其可以通过热成像传感器对被检测物体的温度进行非接触式测量,并能够将被测信…...

CSS系列之Float浮动(二)
一、传统网页布局 网页布局的本质:用 CSS 来摆放盒子,把盒子摆放到相应位置。CSS 提供了三种传统布局方式(这里指的只是传统布局,其实还有一些特殊高级的布局方式): 标准流浮动定位 1、所谓的标准流&#…...

macos下的 sed命令安装与使用 gnu-sed
sed命令是我们在linu类系统中非常重要的一个命令, 但是在macos下面默认是没有sed命令的, 不过我们可以通过brew install gnu-sed ( 或者通过 sudo port install gsed )这个软件包来获得这个命令 GNU sed 命令安装 下面2种方式,选择一种安装即可 # brew安装 brew install gn…...

RLC(电阻、电感、电容)
RLC(电阻、电感、电容) 目录一、两个电阻(R1,R2),电容(C1,C2)的串联/并联公式?二、请画出这个1ms, 1V的Vin脉冲信号在Vout端的大致图像1.电路图2.…...

语音测试(一)ffmpeg视频转音频
视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码,以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…...

计算机网络八股文之TCP协议
TCP/IP模型 链路层 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们…...

【linux】linux中如何通过stress进行压力测试,原理解析与应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
python用波形显示udp数据实现一个模拟示波器
显示端代码: import socket import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np# UDP setup udp_ip = 0.0.0.0 # Listen on all network interfaces udp_port = 12345 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)…...

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)
文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型,返回预测结果 …...

【个人笔记】VCS工具与命令
Title:VCS工具学习 一 介绍 是什么? VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code,同时内置了 仿…...

面试进去8分钟就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这…...

探索MongoDB的Python之钥:pymongo的魔力
文章目录 探索MongoDB的Python之钥:pymongo的魔力背景:为什么选择pymongo?简介:pymongo是什么?安装:如何将pymongo纳入你的项目?基础用法:五个核心函数介绍1. 连接到MongoDB2. 选择数…...

【数据结构】顺序表和链表——顺序表(包含丰富算法题)
文章目录 1. 线性表2. 顺序表2.1 概念与结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 动态顺序表的实现2.4 顺序表算法题2.4.1 移除元素2.4.2 删除有序数组中的重复项2.4.3 合并两个有序数组 2.5 顺序表问题与思考 1. 线性表 线性表(linear list)…...

pod基础和镜像拉取策略
目录 pod概念 pod的分类 1.基础容器 pause 2.初始化容器 init 实验:定义初始化容器 init容器的作用 实验:如何在容器内部进行挂载 镜像拉取策略 pod概念 pod是k8s里面的最小单位,pod也是最小化运行容器的资源对象。容器是基于pod在k…...

53 mysql pid 文件的创建
前言 接上一篇文章 mysql 启动过程中常见的相关报错信息 在 mysql 中文我们在 “service mysql start”, “service mysql stop” 经常会碰到 mysql.pid 相关的错误信息 比如 “The server quit without updating PID file” 我们这里来看一下 mysql 中 mysql.pid 文件的…...

前端---对MVC MVP MVVM的理解
就需要从前端这些年的从无到有、从有到优的变迁过程讲一下。 1. Web1.0时代 在web1.0时代并没有前端的概念,开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常用多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、…...

深度学习 --- VGG16能让某个指定的feature map激活值最大化图片的可视化(JupyterNotebook实战)
VGG16能让某个指定的feature map激活值最大化图片的可视化 在前面的文章中,我用jupyter notebook分别实现了,预训练好的VGG16模型各层filter权重的可视化和给VGG16输入了一张图像,可视化VGG16各层的feature map。深度学习 --- VGG16卷积核的可…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...