- 博客(86)
- 收藏
- 关注

原创 图片识别文字并审核是否包含敏感字
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。产品经理召集开会,文章审核功能已经交付了,文章也能正常发布审核。第二步,导入中文字体库, 把资料中的tessdata文件夹拷贝到自己的工作空间下。文章中包含的图片要识别文字,过滤掉图片文字的敏感词。第三步,在java中配置好Tess4J的工具类。在业务中添加以下逻辑。
2024-11-23 01:45:00
447

原创 捉虫记录04-启动nginx之后访问页面显示404
在排查原因的时候发现是因为nginx中的配置写错了,路径不对,因此没有路由到指定的页面中。启动好nginx之后访问页面显示404,如下图。先执行以下命令,杀死所有nginx进程。然后再重新启动nginx即可。
2024-11-22 09:23:46
1198

原创 捉虫记录03-写项目的时候,把mysql部署在docker中,项目连不上mysql
该警告提示您在建立与MySQL服务器的SSL连接时未进行服务器身份验证,这不符合MySQL的安全要求。MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 版本默认要求使用SSL连接,除非显式设置。verifyServerCertificate 属性:为了兼容旧应用,verifyServerCertificate 属性被设置为 false,但这不是推荐的做法。默认SSL连接:从MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 开始,默认情况下要求使用SSL连接。
2024-11-21 22:01:47
270

原创 捉虫记录02-Nacos访问失败
看问题报错就是数据源问题,nacos没能连接上mysql。出现以下的successfully才表示nacos正常启动。先用docker logs nacos来查找报错信息。这时候再去访问nacos就好了。
2024-11-21 20:15:51
313

原创 Redis的缓存穿透、缓存雪崩、缓存击穿问题及有效解决方案
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。也就是有请求一请求到后端就一定会打到数据库(redis和MySQL都没有该数据),打一次不要紧,但要是有无数个请求同时打过来,那数据库大概率会崩溃,所以预防缓存穿透问题还是十分重要的。缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。
2024-11-14 01:15:00
2765

原创 通过SpringTask模拟打印机定时向数据库传入模拟数据
SpringTask 是 Spring 框架提供的任务调度工具,它允许按照预定的时间自动执行特定的代码逻辑。因此我们在一个spring项目中使用SpringTask时,无须引入新的依赖。
2024-11-12 08:49:53
1184

原创 捉虫记录01-git本地仓库上传远程仓库发生报错的解决方法
错误信息表明,当前本地的分支没有包含远程仓库的最新更改,这通常是因为其他人已经推送了他们的更改到同一个分支。如果出现以下问题,只需要加上git pull --no-edit,然后退出即可。
2024-11-12 08:11:35
670
原创 若依框架使用MyBatis-Plus中的baseMapper的方法报错Invalid bound statement (not found):
若依框架本身就使用了mybatis,因此在配置类中有个mybatisConfig,里面是创建了SqlSessionFactoryBean 这个bean,这个bean它仅支持原生 MyBatis,而不能使用 MyBatis-Plus 的功能。因此我们要使用能够支持MybatisPlus的bean,也就是MybatisSqlSessionFactoryBean ,这个bean能够使用MybatisPlus的增强功能,而且。
2025-03-23 13:26:18
320
原创 MySQL万字面试题汇总
重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。该日志文件由两部分组成:重做日志缓冲()以及重做日志文件() ,前者是在内存中,后者在磁盘中。当事务提交之后会把所有修改信息都存到该日志文件中 , 用 于在刷新脏页到磁盘 ,发生错误时 , 进行数据恢复使用。延伸→那Redo log是怎么进行数据恢复使用的呢?InnoDB的内存结构中有个,Buffer Pool中存放着数据页,我们的增删改操作会先在Buffer Pool中进行。
2025-02-02 20:07:27
659
原创 spring万字面试题汇总
循环依赖是指Bean 对象循环引用,是两个或多个 Bean 之间相互持有对方的引用举个例子,class A 中创建了个对象B,class B 中创建了个对象ASpring IOC (Inversion of Control,控制反转)是 Spring 框架的核心概念之一。它是通过依赖注入(Dependency Injection)实现的IOC 让对象的创建与管理职责由容器负责,而不是由对象自身控制。核心思想:控制反转意味着将对象的创建和依赖关系交由 Spring 容器管理,而不是由程序代码直接控制。
2025-01-27 11:01:44
1226
原创 Redis万字面试题汇总
Redis大key问题指的是某个key对应的value值所占的内存空间比较大,导致Redis的性能下降、内存不足、数据不均衡以及主从同步延迟等问题。到底多大的数据量才算是大key?没有固定的判别标准,通常认为字符串类型的key对应的value值占用空间大于1M,,或者集合类型的元素数量超过1万个,就算是大key。延伸→big key带来的缺点是什么?内存占用过高。大Key占用过多的内存空间,可能导致可用内存不足,从而触发内存淘汰策略。在极端情况下,可能导致内存耗尽,Redis实例崩溃,影响系统的稳定性。
2025-01-26 11:23:03
1212
原创 Java面试题汇总-集合篇+JUC篇
Hash 碰撞是指不同的数据通过哈希算法计算后得到相同的哈希值,映射到了哈希表的同一个位置,发生”碰撞”解决方案: 1.拉链法(链地址法): 将哈希表的每一个槽的位置变成一个链表,将哈希值相同的键存储到同一个链表中2.开放寻址法: 如果出现碰撞,就寻找哈希表下一个可用的位置. 3.再哈希法(双重哈希): 在出现碰撞时,使用第二个哈希函数计算新的索引位置, 减少碰撞的概率当一个共享资源被多个线程访问时进行保护的行为叫线程同步,让线程有序访问,目的是为了避免出现数据不一致等问题。延伸→如何保证线程同步?
2025-01-14 09:33:28
2976
原创 Java面试题汇总-Java基础篇(共50道题)
思维导图回答:不可变类就是创建后其状态,也就是对象的字段无法被修改的类。一般是通过final关键字去创建一个不可变类,最常见的例子就是String字符串,String被创建后其值不可变,假设有s+='a',也只是创建了一个新对象,并将s的引用指向了新对象,s的旧引用指向的老对象的值没有变化还是s。不可变类主要有线程安全、缓存友好等优点,但是也有缺点例如性能问题,当执行了过多的字符串操作,可能会创建大量字符串对象,浪费内存空间。思维导图回答。
2025-01-07 00:15:00
5528
原创 软件体系结构、设计模式、课程期末复习知识点全总结-SCAU
是的总结,是对软件设计中反复出现的设计问题的成功解决方案的描述。以及。它最重要的意义在于,在软件设计中出现问题直接复用成功案例不需要花费时间去重复设计。
2025-01-04 14:11:00
4045
5
原创 数据库原理与应用期末复习
IF EXISTS (SELECT * FROM inserted WHERE ssex NOT IN ('男', '女'))-- 可以使用两个临时表:inserted(插入或更新后的数据)和deleted(删除前的数据)PRINT '满足某种条件,执行操作...';-- 执行相关操作,如检查数据、更新其他表等。-- 过程体,包含变量声明、逻辑处理、事务控制等。-- 函数体,包含变量声明、逻辑处理等。-- 如果有输出参数,设置输出参数的值。-- 执行计算或操作。-- 执行一系列操作。
2025-01-03 20:37:16
898
原创 数据库原理与应用期末试卷(3)SCAU
数据库系统(双语)120 学号姓名年级专业得分 wrongA. The relational model uses a collection of tables to represent both data and the relationships among those data.C.EsB.C.D.SCSnoSnameS#C#Grade1Smith11802Jones25903Smith261004BOB31。
2024-12-27 15:01:50
964
原创 数据库原理与应用期末试卷(2)SCAU
e. Give all price of equipment with price>10000 a 10 percent devaluation (贬值) (in SQL, 3 points).
2024-12-26 09:55:22
1165
原创 数据库原理与应用期末试卷(1)SCAU
(1)两个串行执行序列T1T2或T2T1 扫行结果分别是 A=1,B=2 和A=2,B=1。两个结果都满足A=1或B =1的一致性条件。(注:对其它正则覆盖,可得到不同答案。添加加锁和解锁操作后有可能会死锁。AC, 将ABCD分解为ABC和BD。AC, 将ABCD分解为ACD和BD。A, 将ABCD分解为AC和ABD。A}分解为AC,BA,DA,BD.此时T1,T2 互相等待,死锁。A } 或 Fc={ A。(4)(三个答案)考虑A。注多个答案:Fc={
2024-12-25 10:48:45
1060
原创 期末复习-编译原理(手写笔记)
词法分析:对字符串表示的源程序进行从左到右的扫描和分解,根据语言的词法规则识别出一个个具有独立意义的单词符号。句子、句型(规范句型)、短语、直接短语、句柄(掌握)在书中,终结符集合用Vt表示,非终结符用Vn表示。第一步写出G=(Vn,Vt,P,S)文法:G=(Vn,Vt,P,S)终结符不可再分,非终结符可再分。Vn:非终结符集合(大写)Vt:终结符集合(小写)
2024-12-20 19:43:02
813
原创 期末复习-数据库原理(全英教材)
考试范围: 2.1 -2.6考试内容:1.关系模型的基本概念Relation, Relation schema, Relation instance, attribute, tuple, Database schema, Database instance, Superkey, Candidate Key, Primary Key等。考试题型: 计算题、综合题。
2024-12-18 10:18:55
1653
原创 期末复习-计算机网络应用题
在局域网内,设备数量不会太多,而且设备之间的距离也不会太远,因此广播通信方式可以让所有设备都能够接收到消息,从而实现快速的通信。而广域网的范围比较广,设备数量也较多,采用广播通信方式会导致网络拥塞和效率低下,因此广域网通常采用点对点通信方式。而TFTP是一个轻量级、简单易用的协议,适用于特定的、对安全性和可靠性要求不高的场景。2.模块化:每个层次都有自己的协议和接口,不同层次之间通过这些协议和接口进行交互。3.易于实现和维护:各个层次之间有明确的接口和协议,可以独立开发和测试。为什么运输层是必不可少的?
2024-12-17 21:59:59
1230
原创 期末复习-计算机网络
三次握手是为了确保双方都有发送和接收数据的能力,防止已失效的连接请求突然传送到了服务器端,因而产生错误。四次挥手是因为TCP协议是一种全双工通信协议,每个方向都可以独立地开始和结束数据传输。因此,每个方向都需要单独的FIN和ACK来结束连接。具体动画看ppt181页第六章:应用层1.域名系统DNS注意:互联网的名字空间是按照机构的组织来划分的,与物理的网络无关,与 IP 地址中的“子网”也没有关系。根据所起的作用,分为四种类型:根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器。
2024-12-16 09:45:58
1376
原创 期末复习-编译原理
翻译程序:将一种语言程序(源)转换成另一种语言程序(目标),两者在逻辑上是等价的。如果源语言是高级语言,目标语言是低级语言,则称为编译程序。解释程序:边转换边执行,不生成目标代码。
2024-12-14 20:23:29
268
原创 期末复习-计算机网络
总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。在一般的情况下都不使用这个字段。首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节), 因此 IP 的首部长度的最大值是 60 字节。数据报服务:网络在发送分组时不需要先建立连接,不进行编号,向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。生存时间——占 8 位,记为 TTL (Time To Live), 指示数据报在网络中可通过的路由器数的最大值。
2024-12-12 15:44:41
1504
原创 期末复习-计算机网络篇
局域网的特点:网络为一个单位所拥有;地理范围和站点数目均有限。虚拟局域网其实只是局域网给用户提供的一种。在物理层扩展以太网:使用光纤或者集线器。特点:简单、封装成帧、透明。并不是一种新型局域网。
2024-12-11 15:32:17
1100
原创 期末复习-计算机网络篇SCAU
特点:连通性、资源共享三个阶段:1969-1990:从单个网络ARPANET向互联网发展1985-1993:建成了三级结构的互联网1993-现在:全球范围的多层次ISP结构的互联网。
2024-12-10 16:38:46
1244
原创 每日速记10道java面试题23-Spring篇+Springboot篇
4.说一说Springboot的启动流程1.从main方法启动,调用SpringApplication.run()方法2.先会创建SpringApplication对象,创建的时候会推断应用类型(判断是servlet应用,还是reactive应用,或者不是web应用)设置启动监听器3.创建完SpringApplication之后,调用该对象的run方法,通过ConfigurableEnvironment准备环境,这一步会读取配置文件,例application.preperties4.创建应用上下文,
2024-12-10 00:15:00
1497
1
原创 每日速记10道java面试题22-Spring篇
3)依赖注入(DI)和控制反转(IOC)容器,Spring 的核心是 IOC 容器,它实现了依赖注入模式,通过配置文件或注解来管理对象之间的依赖关系,降低了耦合度,提高了代码的可维护性和可测试性。存在线程安全问题,单例模式下Bean在应用程序中只有一个,如果多线程情况下,访问的都是一个Bean,如果Bean中存在实例变量和非线程安全资源,会引发线程安全问题。2)面向切面编程(AOP),Spring 提供了强大的面向切面编程的支持,允许用户定义横切关注点,并将其与核心业务逻辑分离,提高了灵活性。
2024-12-09 00:30:00
1084
原创 每日速记10道java面试题21-Spring篇
AOP是面向切面变成,是一种编程范式,用于将跨领域的关注点(如日志记录、安全检查、事务管理等)与业务逻辑分离开来。它允许开发者通过“切面”(Aspect)将这些通用功能模块化,并将其应用到应用程序中的多个地方,从而避免代码重复。核心思想:AOP 的核心思想是将与业务逻辑无关的横切关注点抽取出来,通过声明的方式动态地应用到业务方法上,而不是将这些代码直接嵌入业务逻辑中。主要组成部分。
2024-12-09 00:15:00
972
原创 每日速记10道java面试题20-Spring篇
关键就是提前暴露未完全创建完毕的 Bean。在 Spring 中主要是使用三级缓存来解决了循环依赖:一级缓存(Singleton Objects Map):用于存储完全初始化完成的单例Bean。二级缓存(Eary singleton Objects Map):用于存储尚未完全初始化,但已实例化的Bean,用于提前暴露对象,避免循环依赖问题.三级缓存(Singleton Factories Map):用于存储对象工厂,当需要时,可以通过工厂创建早Bean(特别是为了支持AOP代理对象的创建)。解
2024-12-08 00:30:00
666
原创 每日速记10道java面试题19-Redis篇
Redis大key问题指的是某个key对应的value值所占的内存空间比较大,导致Redis的性能下降、内存不足、数据不均衡以及主从同步延迟等问题。到底多大的数据量才算是大key?没有固定的判别标准,通常认为字符串类型的key对应的value值占用空间大于1M,,或者集合类型的元素数量超过1万个,就算是大key。延伸→big key带来的缺点是什么?内存占用过高。大Key占用过多的内存空间,可能导致可用内存不足,从而触发内存淘汰策略。在极端情况下,可能导致内存耗尽,Redis实例崩溃,影响系统的稳定性。
2024-12-08 00:15:00
982
原创 每日速记10道java面试题18-redis篇
select模式存在的三个问题:能监听的FD最大不超过1024每次select都需要把所有要监听的FD都拷贝到内核空间每次都要遍历所有FD来判断就绪状态poll模式的问题:poll利用链表解决了select中监听FD上限的问题,但依然要遍历所有FD,如果监听较多,性能会下降epoll模式中如何解决这些问题的?基于epoll实例中的红黑树保存要监听的FD,理论上无上限,而且增删改查效率都非常高。
2024-12-07 00:30:00
1219
原创 每日速记10道MySQL面试题17
数据库视图是一个虚拟表,它基于一个或多个表的数据,但本身不存储数据。视图简化了数据查询和操作,同时可以提高数据安全性。它只是一种逻辑上的表示,不占用物理空间。其实就是将表中的列抽象出来形成视图。可以理解成存储起来的sql语句,其它地方可以直接用。不暴露底层的表结构,有权限控制,所以可以保护一些敏感的、不想让别人看见的列。视图可以被重复利用,减少代码冗余。WAL (Write-Ahead Logging)技术是一种数据库事务日志管理技术,它确保在修改真正的数据之前,先将修改记录写入日志。
2024-12-07 00:15:00
507
原创 每日速记10道MySQL面试题16
1.如何在MySQL中避免单点故障?/如何实现读写分离?一般会使用主从架构的形式,主数据库+从数据库,读操作只在从数据库中读,写操作往主数据库中写,写完之后再数据同步到从数据库,当主数据库崩了之后,就让从数据库顶上来,读写操作都由从数据库承担,等到主数据库恢复了之后,再将从数据库中的数据同步到主数据库并恢复读写分离。
2024-12-06 00:30:00
921
原创 每日速记10道MySQL面试题15
1.如果MySQL中没有MVCC,会有什么影响?如果没有mvcc,并发情况下想保持数据的一致性,无论读写都要对数据进行加锁(串行化隔离级别),大大影响了数据读写的性能。多个事务之间会频繁的竞争锁资源,事务可能因为等待锁而被组赛,从而延长用户的的响应时间。最直观的例子就是:目前有两个事务,事务A在修改数据(但还未提交),与此同时事务B想要查询数据,如果没有MVCC,那事务B就会一直等待事务A的锁释放,这样就很影响读写性能。如果有MVCC,那么事务B就能够直接查到修改前的数据,这样就大大提高了事务的并发
2024-12-06 00:15:00
1218
原创 每日速记10道java面试题14-MySQL篇
重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。该日志文件由两部分组成:重做日志缓冲( redo log buffer)以及重做日志文件(redo logfile) ,前者是在内存中,后者在磁盘中。当事务提交之后会把所有修改信息都存到该日志文件中 , 用 于在刷新脏页到磁盘 ,发生错误时 , 进行数据恢复使用。延伸→那Redo log是怎么进行数据恢复使用的呢?
2024-12-05 00:30:00
1069
原创 每日速记10道java面试题13-MySQL篇
1.MySQL中的数据排序是怎么实现的?MySQL中的数据排序主要通过ORDER BY子句实现,其底层实现机制主要有两种方式:使用索引排序:当ORDER BY子句中的列恰好有对应的索引时,MySQL可以直接利用索引来完成排序操作,这是最高效的排序方式。索引本身是有序的,所以MySQL只需要按照索引的顺序扫描即可得到排序后的结果。文件排序(flesort):当无法使用索引进行排序时,MySQL会使用文件排序。这种方法会将需要排序的数据加载到内存中,然后在内存中进行排序。如果数据量较大,超过了系统变量
2024-12-05 00:15:00
881
原创 每日速记10道java面试题12
为什么 Java 新生代被划分为 S0、S1和 Eden 区?因为新生代中的对象生命周期短,所以十分适合复制算法,按正常思路将新生代一分为二,每次只使用其中一个,然后把GC后存活的对象移动至另一块,然后把老区域的非存活对象清理掉,就能避免碎片空间的产生。但是一分为二的话空间利用率就只有50%了,为了提高空间利用率,定义了三个区域,Eden 区和两个 Survvor 区,Eden 区+1个Survivor 区可以比二分之一大,提升利用率,默认 Eden 占 80%-个Survivor 占10%。然后
2024-12-04 00:30:00
888
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人