自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 灰度发布/验收流程

灰度发布(也叫金丝雀发布)的核心思想是:不要一次性把新版本推给所有用户,而是先把一小部分,观察没问题再逐步放量,有问题就立即回滚。

2026-07-03 11:34:11 225

原创 百度测试开发岗位面试真题

抽象方法抽象方法是接口的核心部分,所有实现接口的类都必须实现这些方法。抽象方法默认是public和abstract,这些修饰符可以省略。默认方法默认方法是在java 8中引入的,允许接口提供具体实现。实现类可以选择重写默认方法。静态方法静态方法也是在java 8中引入的,它们属于接口本身,可以通过接口名直接调用,而不需要实现类的对象。私有方法私有方法是在java 9中引入的,用于在接口中为默认方法或其他私有方法提供辅助功能。这些方法不能被实现类访问,只能在接口内部使用。

2026-06-26 20:26:27 240

原创 Hbase、MySQL和Redis区别

选MySQL数据结构稳定、需要强一致性涉及复杂查询、事务(如转账、库存扣减)数据量在GB~TB级别以内选HBase数据量极大(TB~PB),需高并发随机读写数据稀疏、列可动态变化(如用户行为日志)已部署Hadoop生态(HDFS、Spark等)选Redis需要极低延迟(如验证码、热点商品信息)用作缓存层,减轻MySQL/HBase压力实现计数器、排行榜、消息队列等简单逻辑。

2026-05-18 15:00:49 149

原创 ICMP基础知识

主机A向主机B发送了数据包,由于某种原因导致路由器2未能发现主机B的存在,这时,路由器2就会向主机A发送一个ICMP目标不可到达数据包,说明发往主机B的包未能成功。IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在这个消息中显示不可达的具体原因,原因记录在ICMP包头的代码字段。回送消息是类型0和8,用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息,ping命令就是利用这个消息实现的。

2026-04-16 15:42:40 259

原创 进程与线程之间区别?进程之间通信方式有哪些?(大厂面试题)

线程:本身只持有必要的运行上下文(如寄存器、栈),共享所属进程的地址空间和资源,是系统调度的基本单位。8. (补充) 在微内核或现代系统中,还有事件对(eventfd)、进程间中断(针对虚拟机/驱动)等专用机制。· 可用于同一主机或不同主机间的进程通信,支持字节流(TCP)和数据报(UDP),功能强大。· 将文件映射到进程地址空间,多进程以映射同一文件的方式实现共享内存,兼具持久性与共享能力。· 命名管道(FIFO):允许无亲缘关系进程通过文件系统路径通信,支持双向,仍为字节流。1. 资源占用与分配。

2026-03-20 22:19:00 58

原创 在浏览器输入一个网址,这期间会发生什么?(大厂面试题)

若为https://www.google.com这类格式,浏览器会解析协议(https)、域名、端口(默认443)和路径。· 返回HTTP响应:状态行(如200 OK)、响应头(Content-Type: text/html、Set-Cookie等)、响应体(HTML内容)。· TLS握手(HTTPS):协商加密套件、交换证书(验证服务器身份)、生成会话密钥。· 请求行:方法(GET)、路径(/)、协议版本(HTTP/1.1或HTTP/2)。· 布局(重排):计算每个节点的几何位置(宽高、坐标)。

2026-03-20 22:15:04 270

原创 性能测试有哪些?

逐步增加并发用户数或数据量,观察系统性能指标(响应时间、吞吐量、资源利用率)是否满足预设的“性能阈值”。定义:通过调整硬件(cpu/内存)或软件配置(线程池大小、jvm参数、数据库连接数),对比不同配置下的性能差异。定义:让系统在一定压力下(通常是峰值压力的70%-80%)长时间运行(如8小时、24小时甚至7天)。目的:用于后续版本对比。定义:在特定环境、特定版本下,执行一次标准化的性能测试,记录下性能数据作为“基准线”。目的:重点考察系统在瞬间高并发下的锁机制、数据一致性、线程安全、死锁等问题。

2026-03-20 20:16:55 230

原创 Java中常用的集合有哪些

Java中所有的类都位于java.util包下,主要由两个接口派生出来,分别是Collection和Map.Collection包含了List和Set两大分支。Map是一个映射接口。Set 、Map、List可以看做集合的三大类。而遍历集合的工具有Iterator和Enumeration;Arrays和Collection是操作数组集合的两个工具类。

2026-03-12 16:20:29 356

原创 Spring AOP原理

AOP(Aspect-Oriented Programming)即面向切面编程,是一种通过预编译或动态代理技术,将横切关注点(如日志、安全校验)与业务逻辑分离的编程范式。将分散在多个类中的相同逻辑(如事务管理)抽取到切面(Aspect)中通过切入点(Pointcut)定义需要增强的方法使用通知(Advice)描述切面逻辑的执行时机。

2026-01-19 14:18:21 348

原创 9种常用排序算法总结

基本思想:假设初始序列含有n个记录,则可看成时n个有序的子序列,每个子序列的长度为1,然后两两并归,得到n/2个长度为2或1的有序子序列;​ n个记录需要进行log2 n趟归并排序,每一趟归并,其关键字比较次数不超过n,元素移动次数都是n,因此时间复杂度为O(nlog2 n)每次将堆顶元素取出,与末尾元素交换,调整前n-1个元素,使其仍然成堆,重复上述过程,直到剩余元素为1时为止,即可得到非递减序列。基本思想:每一趟排序从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录中,直到全部排完为止。

2026-01-18 21:27:41 1003

原创 为什么用bigDecimal不用double?

这无疑是一个很严重的问题,尤其是当电商网站的并发量上去的时候,出现的问题将是巨大的。double会出现精度丢失的问题,double执行的是二进制浮点运算,二进制有些情况下不能准确的表示一个小数,就像十进制不能准确的表示1/3(1/3=0.3333...),也就是说二进制表示小数的时候只能够表示能够用1/(2^n)的和的任意组合,但是0.1不能够精确表示,因为它不能够表示成为1/(2^n)的和的形式。然后,我们使用add()方法计算它们的和,并使用multiply()方法计算它们的乘积。

2026-01-02 21:54:37 251

原创 Linux系统

ls:是英文list的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir命令。tar是Linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件。apt是Advanced Packaging Tool的简写,其是Linux下的一款安装包管理工具,可以在终端方便的安装/卸载/更新软件包。查阅command命令的使用手册,man是manual的缩写,是linux提供的一个手册,包含了绝大部分的命令、函数的详细使用。

2025-12-31 14:56:17 631

原创 什么是Git,以及其有什么作用呢?

Git是一个开源的分布式版本控制系统,是目前世界上最先进,最流行的版本控制系统。其特点是项目越大越复杂时,协同开发者越多,越能体现出Git的高性能和高可用性。git快速和高效,一是因为它能直接记录快照,而非差异比较;二是几乎所有操作都是本地执行。Git对象。

2025-12-30 23:17:44 1586

原创 SSM框架中Mapper层,controller层,service层,model层,entity层的作用

其次,我们采用JDK代理时,被代理对象一定要实现一个接口,所以必须要定义一个接口类,然后我们的被代理对象是实现类。我们可以注入@Resource这个是通过方法的方式来识别注入的依赖,或者采用@Autowaried是通过方法识别注入的依赖。controller层作用是导入service层,因为service中的方法是我们使用到的,controller通过接受前端传过来的参数进行业务操作,再将处理结果返回到前端。mapper层主要是对数据库进行数据持久化操作,它的方法语句将会对数据库进行操作。

2025-12-28 15:31:30 564

原创 数据库左(外)连接、右(外)连接、全连接和内连接

左连接返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配项,则结果中右表的列为NULL。

2025-12-26 10:53:47 595

原创 回表查询、覆盖索引

聚集索引是一种特殊的索引类型,它将数据行的物理存储顺序与索引键的逻辑顺序保存一致。数据行存储在索引的叶子节点中,表数据在磁盘上按照聚集索引键值的顺序存储,每个InnoDB表必须有且只有一个聚集索引。如果索引列在select所需获得的列中或者根据一次索引查询就能获得记录就不需要回表,如果select所需获得列中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就是回表。能够命中name索引,索引叶子节点存储了主键id,通过name的索引树即可获取id和name,无需回表,符合索引覆盖,效率较高。

2025-12-15 23:12:54 262

原创 JMeter的基本使用与性能测试

Jmeter是用Java编写的开源软件,主要用于进行性能和负载测试工具。Web应用(HTTP/HTTPS请求)Web服务(SOAP/REST,GraphQL)数据库(JDBC)消息中间件(JMS,AMQP,Kafka)FTP服务器Shell脚本/Java对象TCP协议它的核心能力是模拟大量用户并发访问目标服务,并收集、分析和可视化性能指标。

2025-12-15 20:49:45 832

原创 回溯递归算法(Java)

指在给定问题的约束条件下,所有可能的解的集合,它包含了问题的所有合法解。解空间的具体形式取决于问题的性质和约束条件。在解决问题时,我们通常需要在解空间中搜索满足特定条件的解。回溯算法、枚举法、剪枝算法等求解方法都是基于对解空间的搜索。它的基本思想是:为了求得问题的解,先选择一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解,回溯法实际上是深度优先探索的一种改进。回溯算法的时间复杂度通常较高,因为它需要枚举所有问题的解。

2025-12-15 19:38:24 207

原创 HTTP状态码

HTTP协议本身是无状态的,这与HTTP协议本来目的是相符的,客户端只需要简单的向服务器请求下载某些文件,无论客户端还是服务端都没有必要记录彼此过去的行为,每一次请求之间都是独立的。cookie的作用就是为了解决HTTP协议无状态的缺陷所作出的努力。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

2025-12-12 16:09:31 283

原创 Nginx反向代理

后端接收的接口地址,例如:http://localhost:8080/api/employee/login。前端请求地址与后端接口地址并不匹配,这时候需要采取Nginx反向代理,将前端发送的请求转发到后端服务器。前端发送的请求地址,例如:http://localhost/api/employee/login。,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

2025-12-12 11:29:33 342

原创 Java代码创建一个降序排列的优先队列(最大堆)

这段代码创建了一个降序优先队列(最大堆),队首始终是当前队列中的最大值。1、PriorityQueue的默认行为。删除队首:O(log n)1、获取最大的k个元素;2、需要按降序处理数据;2、自定义比较器的作用。插入:O(log n)

2025-12-11 14:31:32 242

原创 什么是Redis缓存

Redis是以Key-value形式存储和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求。(非关系型的,分布式的,开源的,水平可拓展的)Redis服务器是单线程的优点:对数据高并发读写(直接是内存中进行读写的)对海量数据的高效率存储和访问对数据的可拓展性和高可用性单线程操作,每个操作都是原子操作,没有并发相关问题缺点:redis(ACID处理非常简单)无法做太复杂的关系数据库模型Redis定位是缓存的,提高数据读写速度,减轻对数据库存储与访问压力。

2025-12-11 11:24:31 765

原创 Redis l/0多路复用

传统阻塞I/O中,read()/write()会卡住线程等数据来/发完。非阻塞+轮询是不停去read()/write()。多路复用是把一堆fd交给内核,等到某些fd就绪(可读/可写/异常),一次性通知用户态,应用再去处理这些”就绪的少数“。常见接口:Linux 的 epoll、BSD/macOS 的 kqueue、老一点的 select/poll(Redis 会根据平台选择最优,select 作为兜底)。单线程事件循环 + 非阻塞套接字 + I/O 多路复用。

2025-11-04 11:09:49 428

原创 java中的线程池有哪些参数?

太大容易在突发流量时创建大量线程导致抖动/抢锁/CPU 争用。线程池启动后“常驻”的工作线程数(除非开启了核心线程超时,见后文)。任务(交接点),提交必须有空闲线程立刻接手;影响:决定低负载时线程能否“瘦身”,降低资源占用。数组队列,容量固定、可控背压,生产可预期。里执行任务(起到自然降速/背压的作用)。任务,再入队新任务(同样有丢数据风险)。默认无界),扩容几乎不会发生,),适合按权重/时间排序执行。内部):用于定时/延迟任务。新任务(无异常,风险大)。),排障与监控更友好。,提醒你限流/扩容)。

2025-11-04 09:06:10 302

原创 http和https哪个更安全?为什么?

HTTPS更安全。https是在http的外层套上一层,先做握手协商出对称密钥,再用它加密后面的数据,抓包只能看到一坨密文。如果我访问一个网页依次发生什么?(http+dns解析+tcp握手+html源码渲染);

2025-11-03 09:42:00 694

原创 TCP和UDP特点,应用场景,包头信息,讲一下,位于OSI模型中哪一层?TCP的拥塞控制了解吗?;

面向连接、可靠、面向字节流无连接、不可靠、面向报文。

2025-11-03 00:20:49 149

原创 进程、线程之间的区别,如何通信。

进程拥有自己的地址空间,每启动一个进程,系统就会为它分配地址空间;而线程与CPU资源分配无关,多个线程共享同一进程内的资源,使用相同的地址空间。如果一个进程死掉不会影响另外进程,因为进程之间是独立的地址空间。线程是程序执行的最小单位,是进程的一个执行流,一个进程由多个线程组成的。进程是资源分配的基本单位,它是程序执行时的一个实例,在程序运行时创建。进程是资源分配的基本单元,线程是程序执行的基本单元,两者都可并发执行。1.管道(pipe):父子进程最常用,像一根数据通道,单向,字节流。

2025-11-03 00:07:19 247

原创 多头注意力机制(Multi-Head Self-Attention)

允许注意力机制组合使用Query、Key和Value的不同子空间表示可能有益的。先利用独立学习得到的h组不同的线性投影来变换Query、Key和Value;然后,将这h组变换后的Query、Key和Value并行送到注意力汇聚中;最后,将这h个注意力汇聚的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,来输出最终的结果。

2024-10-15 21:33:56 659

原创 6种典型攻击

梯度反演攻击的主要思想是利用模型训练过程中交换的梯度信息,通过优化技术重建出参与训练的原始数据。是一种针对人工智能(AI)系统的训练数据进行恶意篡改的行为,其目的是让训练出的AI模型在预测时产生错误的输出,从而影响模型的决策和性能。模型内存泄漏是指在模型训练过程中,由于不正确的内存管理,导致内存无法释放,进而影响训练效率和模型性能的问题。尽管已有一些防御方法被提出,但梯度反演攻击的研究仍然在不断进展,攻击者可能会开发出新的攻击技术来绕过现有的防御措施。

2024-10-15 13:23:35 1958

原创 强化学习基础知识

动作价值函数 Q(s,a)Q(s,a) 定义为在状态 ss 下采取动作 aa 并遵循某个策略 ππ 所能获得的期望回报。数学上,它可以表示为:其中,RtRt​ 是在时间步骤 tt 采取动作后获得的即时奖励,StSt​ 和 AtAt​ 分别是在时间步骤 tt 的状态和动作。

2024-09-11 18:44:55 970

原创 机器学习中常用的几种距离

L1距离,也称为曼哈顿距离(Manhattan Distance)或城市街区距离(City Block Distance),是一种度量两个点在标准坐标系上的绝对轴距总和的距离度量方法。L2距离,也称为欧几里得距离(Euclidean Distance),是度量两点在欧几里得空间中直线距离的一种方法。其中,n 是维度的数量,pi 和 qi 分别是点 P 和 Q 在第 i 维上的坐标。其中,n 是维度的数量,pi 和 qi分别是点 P和 Q在第 i 维上的坐标。

2024-09-02 20:10:53 1150 1

原创 TypeError: ‘(slice(None, None, None), slice(0, 3, None))‘ is an invalid key

报错原因:df在这里的类型是dataframe,dataframe格式的数据不能直接用数组的形式提取。 解决方式:用df.iloc[:,:],就可以解决以上问题。

2023-12-19 20:26:15 988 1

原创 如何解决过拟合和欠拟合

(3)正则化:获取更多数据,从数据源获得更多数据,或数据增强。(1)数据处理:1、清洗数据,2、降维,3、类别平衡。融合几个具有差异的弱模型,使其成为一个强模型;即提供的特征不能表示出那个需要的函数;即使得模型复杂一些;

2023-08-28 14:42:38 615

原创 梯度下降法和牛顿迭代法

在用到机器学习的算法中,本质是建立优化模型,通过最优化方法对目标函数或者损失函数进行优化,从而训练出最好的模型。一般最常见的最优化方法有梯度下降法、牛顿迭代法。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。 梯度下降法缺点:1)靠近极小值时收敛速度减慢;2)直线搜索时可能会产生一些问题;3)可能会“之字形”地下降。 用一个二次函数去近似目标函数f(x),然后精确地求出这个二次函数的极小点。

2023-08-10 11:44:10 864 1

原创 什么是卷积,什么是卷积神经网络。

卷积:“卷”表示函数的翻转或图像的翻转;“积”表示积分/加权求和。卷积是将卷积核应用到某个张量的所有点上,通过将卷积核在输入的张量上滑动而生成滤波处理的张量。通俗一点讲卷积是对图像特征提取或者信息匹配。卷积神经网络:是通过模拟人脑视觉系统,采取卷积层和池化层依次交替的模型结构,卷积层使原始信号得到增强,提高信噪比,池化层利用图像局部相关性原理,对图像进行邻域间采样,在减少数据量的同时提取有用信息,同时参数减少和权值共享使得系统训练时间长的问题得到改善。

2023-08-10 10:12:59 1445 1

原创 报错原因:TypeError: ‘NoneType‘ object is not subscriptable

报错原因 :class是一个对象,将它实例化后,便可以直接调用对象里面的函数。解决方案:删除run后面的()

2023-07-12 10:53:11 243 1

原创 ui文件转换成py文件

在该文本路径下生产了相应的py文件

2023-07-07 15:18:23 2599 1

原创 贝叶斯定理

P(B|A) 是条件概率的符号,表示事件 A 发生的条件下,事件 B 发生的概率,这可以看作一个条件概率,条件概率是“贝叶斯公式”的关键之处,这个计算结果可以看成“先验概率”。P(A) 这是概率中最基本的符号,表示 A 出现的概率。比如在投掷一枚骰子时,P(3) 指的是骰子出现数字“3”的概率,这个概率是 六分之一。P(A|B) 是条件概率的符号,表示事件 B 发生的条件下,事件 A 发生的概率,这个计算结果可以看成“后验概率”。

2023-07-07 11:45:03 311 1

原创 MPLS的工作原理

由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。由标签交换路由器LSR组成。

2023-07-06 14:30:42 547 1

原创 NAT原理(计算机网络)

NAT(Network Address Translation)是指网络地址转换。其可以实现在专用网的主机与在因特网的主机之间建立通信。

2023-07-06 14:09:18 158 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除