自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础编程500题

本专栏整理了《Java基础编程题500题》,涵盖的知识点包括顺序结构、分支结构、循环结构、数组、方法、字符串、面向对象、集合、正则表达式、Stream API、反射、多线程等知识点。本专栏非常适合Java初学者。

2024-07-19 00:12:52 3708 3

原创 计算机保研/考研面试题——数据结构与算法篇

时间复杂度衡量了算法运行所需的时间资源。时间复杂度分析关注的是算法在最坏情况下的时间消耗。

2024-07-07 18:02:48 8589 8

原创 JDK扩展机制——SPI

SPI指的是服务提供者接口(Service Provider Interface),是JDK内置的一种动态扩展机制,它是面向接口实现者的。Java中可以定义一种标准接口,让第三方去实现这个接口。然后再把第三方的SPI实现类,根据配置信息,动态加载进来。

2025-03-11 22:39:50 336

原创 Java网络编程

(2)客户端创建一个Socket对象,指定服务器的IP和端口。连接建立后,从Socket中获取输入流和输出流,然后发送数据到服务器,并读取服务器的响应。(1)服务器首先要指定监听哪个端口,然后把端口参数传入到ServerSocket的构造方法,然后通过。连接建立后,从Socket中获取输入流和输出流,循环读取客户端数据,并处理并回复。Java中进行网络编程,需要编写两个类,一个是服务器类,一个是客户端类。

2025-03-11 21:52:14 183

原创 AQS及派生类

AQS名字为一个抽象队列同步器,是一个抽象类。它提供了一个框架,都是基于AQS实现的。首先,AQS中提供了一个由volatile修饰的int类型的共享资源,就是state变量。在ReentrantLock的实现类中,state用来表示锁的占有情况,包括可重入计数,当state的值为0的时候,标识该锁不被任何线程所占有。其次,AQS还要维护一个FIFO队列,是一个双向链表,用来存放等待的线程。

2025-03-10 15:01:52 838

原创 从0开始在linux服务器上部署SpringBoot和Vue

Hospital-1.0-SNAPSHOT.jar上传到/root/hosptal/hospital-backend/例如申请的IP为8.146.208.150(已失效,仅为演示),服务器是ubuntu的linux服务器。然后Hospital-1.0-SNAPSHOT-encrypted.jar移入服务器。移动到/root/hosptal/hospital-nginx/html/目录。这些都是不要紧的,属于vue的动态代理,但是打包后的dist是静态项目。密码是xxxx,用户是root。

2024-12-26 15:04:58 1449 1

原创 TCP为什么需要三次握手?两次握手或四次握手可以吗?

旧的SYN报文引起的第二次握手到达客户端,客户端会比较确认应答号字段是否是新的SYN报文的序列号+1,如果是旧的SYN报文发起的,那么会给服务器发送RST报文中止连接。四次握手其实也能够可靠的同步双方的初始化序号,可以把ACK和SYN报文合并在一起进行优化,所以就成了三次握手,这样减少了一次通信。因此,通过三次握手能确认客户端和服务器的收发能力,防止历史连接的建立,能减少不必要的资源开销,能帮助双方同步初始化序列号。可以确认客户端和服务端的收发能力是正常的,但是服务端无法确认客户端的接收能力是正常的;

2024-11-24 15:14:22 728

原创 TCP三次握手的过程是怎样的?

客户端收到服务端的SYN和ACK报文后,还要向服务端回应最后一个应答报文,首先该应答报文TCP首部 ACK 标志位置为 1 ,其次在32位确认应答号字段填入server_isn+1,最后把报文发送给服务端,这次报文可以携带客户到服务端的数据,之后客户端处于 ESTABLISHED 状态。服务端收到客户端的应答报文后,也进入 ESTABLISHED 状态。客户端会随机初始化序号(client_isn),将此序号填入TCP首部的32位序号字段中,同时把 SYN 标志位置为 1,表示希望建立连接。

2024-11-24 15:03:21 309

原创 基于Python和OSS的大文件上传助手

现在遇到微信无法发送大文件的难题已经得到解决,无需再依赖微信、QQ或是云盘来分享大型文件。通过OSS服务器进行下载,下载速度将取决于你的网络带宽,通常情况下,从服务器下载文件的速度会非常快。3️⃣ IDE:Pycharm或vscode。1️⃣ 操作系统:Windows 7以上。注册阿里云OSS,创建你的bucket。4️⃣ 依赖:最新版的PyQt。申请一个AccessKey。

2024-11-24 01:19:16 809

原创 HTTP有哪些风险?是怎么解决的?

将证书发送给客户端后,客户端内置了一些可信任的认证机构的公钥,然后使用认证机构的公钥对证书进行解密,若验证通过才可以拿到服务端的公钥。证书的申请需要服务方主动去认证机构注册才能生效,而黑客伪造的证书通常没有被认证机构认证,因此解决了公钥被冒充的问题。假如有个黑客拦截了服务端向客户端发送的公钥,并用黑客的公钥向客户端发送消息,而后客户端发送了用黑客公钥加密的消息,黑客就可以用自己的私钥解密这个信息,从而导致了数据的窃听。加密,得到消息的签名。公钥加密的消息可以用私钥解密,私钥加密的消息可以用公钥解密。

2024-11-23 14:11:53 791

原创 一条sql语句是怎么执行的?

随后将更新的记录写到Redo日志中,Redo日志会写到Redo Log Buffer,此时Redo日志处于prepare状态,事务提交之前会将Redo Log Buffer的Redo日志刷盘到Redo Log File,随后告诉执行器事务“可以提交”,存储引擎会根据操作写Bin Log到磁盘。首先客户端与MySQL连接器进行连接,然后分析器经过词法分析和语法分析,然后到达优化器,优化器生成执行计划,选择索引,这里选择主键索引id,然后就到达了执行器,执行器调用存储引擎,存储引擎返回结果。

2024-11-04 00:15:51 352

原创 设计模式篇

在Spring框架中,适配器模式的一个典型应用是Spring AOP,其中AdvisorAdapter接口及其实现类就是适配器模式的体现,它们将不同类型的Advice(通知)适配成统一的拦截器调用链,这样无论使用哪种Advice,都可以通过统一的拦截器机制来执行。不过,观察者模式的缺点在于,如果观察者和被观察者的关系较为复杂,系统可能会变得难以维护。在这种模式中,被观察者维护一组观察者,当被观察者的状态发生变化时,它会自动通知所有注册的观察者对象,这样观察者可以及时更新自己的状态或执行相应的操作。

2024-10-25 17:25:51 1212

原创 Java基础篇

String类被设计为final的主要原因是保证字符串的不可变性,这样做的目的是为了确保字符串常量池的正常工作以及提升性能。不可变字符串可以缓存其hash值,确保在字符串常量池中共享时不被意外修改,这对于字符串比较操作尤其重要。此外,不可变字符串在多线程环境下是安全的,因为它不会因为一个线程的操作而影响其他线程。另一个原因是防止子类化可能带来的问题。如果String类可以被继承,子类可能会破坏字符串的不可变性,这会导致安全性问题和代码的不可预测行为。

2024-10-25 17:11:17 1390

原创 设计模式:类与类之间关系的表示方式(聚合,组合,依赖,继承,实现)

聚合是一种较弱的“拥有”关系,表示整体与部分的关系,但部分可以独立于整体存在。例如,部门和员工之间的关系,一个部门可以包含多个员工,但员工可以离开这个部门。

2024-10-19 00:36:52 565

原创 MySQL篇

MySQL数据库的索引原理是基于数据结构中的B+树实现的。索引能够提高查询效率,其核心思想是通过快速定位来减少磁盘I/O次数。当执行查询操作时,MySQL会使用索引来快速找到数据行,而不是遍历整个数据表。B+树结构使得索引在查找、插入和删除操作中都能保持较高的效率,因为它的中间节点不存储数据,只有叶子节点才存储数据,并且叶子节点之间是通过指针连接的,便于范围查询。(1)B树索引是一种自平衡的树结构,它允许搜索、顺序访问和插入/删除操作,但相比于B+树,它的磁盘I/O操作较多。

2024-10-16 12:00:17 1079

原创 Java虚拟机篇

(1)JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,它的职责是运行Java字节码文件,作用是为了支持跨平台特性。(2)JVM的功能有三项:第一是解释执行字节码指令(解释运行);第二是管理内存中对象的分配,完成自动的垃圾回收(内存管理);第三是优化热点代码提升执行效率(即时编译)。(3)JVM组成分为类加载子系统、运行时数据区、执行引擎、本地接口这四部分。JVM是运行所有Java应用程序的核心引擎,整体结构主要包括类加载器、运行时数据区、执行引擎、本地库接口和本地方法库。(1)类加载器。

2024-10-16 11:28:21 882

原创 基于SpringBoot框架和Flask的图片差异检测与展示系统

如上图所示,左侧展示的是检测结果(result),而右侧展示的是模板图片(template)。在检测结果中,sample图片与template图片之间的不同之处已经被红色圆圈精确标注出来,从而清晰地指出了两者之间的差异。数据库需记录以下信息:id、用户id、sample和template图片的URL、result图片的URL以及图片上传时间。将用户上传的图片和Python生成的检测结果保存到阿里云服务器,并返回URL给前端展示。用户上传图片并按下检测按钮后,系统显示正在检测提示,提高用户体验。

2024-09-08 13:12:23 1106

原创 Redis基本类型常用命令练习

目录一、String类型1. 使用Redis的String命令,如何设置一个键为"username",值为"Tom"的键值对?2. 如何使用Redis的String命令获取键为"username"的值?3. 使用Redis的String命令,如何设置一个键为"age",值为23的键值对,然后让age+1。4. 如何使用Redis的String命令同时设置多个键值对,例如:“key1"的值为"value1”,“key2"的值为"value2”?5. 使用Redis的String命令,如何获取键为"userna

2024-09-04 00:45:32 1528

原创 Elasticsearch用法

Elasticsearch用法

2024-08-25 19:22:28 2683

原创 RabbitMQ高级用法

RabbitMQ高级用法

2024-08-22 09:48:32 1453

原创 RabbitMQ基础

RabbitMQ基础

2024-08-21 00:18:37 1453

原创 微服务:分布式事务

微服务:分布式事务

2024-08-20 10:21:00 1199

原创 微服务:微服务保护

微服务:微服务保护

2024-08-19 23:28:42 1019

原创 JMeter的安装和使用

JMeter的安装和使用

2024-08-19 16:52:58 801

原创 微服务:配置管理和配置热更新

微服务:配置管理和配置热更新

2024-08-19 13:13:37 1481

原创 微服务:网关路由和登录校验

微服务:网关路由和登录校验

2024-08-18 22:50:37 1567 3

原创 微服务:服务的注册与调用和OpenFiegn

微服务:服务的注册与调用和OpenFiegn

2024-08-17 00:52:21 1835 2

原创 SpringBoot:将单体项目拆分成微服务项目

SpringBoot:将单体项目拆分成微服务项目

2024-08-15 22:09:11 2252 3

原创 Maven:分模块设计、继承、版本锁定与聚合

Maven:分模块设计、继承、版本锁定与聚合

2024-08-15 14:27:29 848

原创 Navicat实现数据库迁移及数据库的导出和导入

Navicat实现数据库迁移及数据库的导出和导入

2024-08-14 21:51:24 4078

原创 Docker Compose一键部署前端、后端、数据库

Docker Compose一键部署前端、后端、数据库

2024-08-14 20:19:45 1186

原创 Docker手动在虚拟机上部署前端、后端和数据库

Docker手动在虚拟机上部署前端、后端和数据库

2024-08-14 17:25:24 1074 1

原创 Docker的安装和基本用法

Docker的安装和基本用法

2024-08-14 09:40:28 1644

原创 Spring Cache:基于注解的缓存实现

Spring Cache:基于注解的缓存实现

2024-08-13 11:39:37 402

原创 Redis:SpringBoot中的Redis基本增删改查

Redis:SpringBoot中的Redis基本增删改查

2024-08-13 01:12:57 1291

原创 MyBatisPlus:IService的用法

MyBatisPlus:IService的用法

2024-08-12 21:57:14 2726 1

原创 MyBatisPlus:基本增删改查

MyBatisPlus:基本增删改查

2024-08-12 15:02:11 1723

原创 基于Python的桌面全屏录制软件

基于Python的桌面全屏录制软件

2024-08-09 18:00:23 853

原创 基于wxauto的AI微信聊天助手

基于wxauto的AI微信聊天助手

2024-08-09 16:52:11 2110

原创 SpringBoot基础

本专栏是我在学习SpringBoot时的一些笔记,供大家参考和学习。

2024-08-01 16:49:22 666

基于wxauto的AI微信聊天助手

基于wxauto的AI微信聊天助手

2024-08-09

SpringBoot的登录校验demo

简介: SpringBoot的登录校验demo,内含生成和解析JWT令牌并通过拦截器拦截的基本功能 代码讲解: https://blog.youkuaiyun.com/m0_53140426/article/details/140794789 环境: (1)JDK 11 (2)SpringBoot:2.6.13 (3)Maven:3.6.3

2024-07-31

计算机专业保研/考研面试题(完整版)

内容摘要:掌握扎实的专业知识是考研和保研的关键。本文精选了985和华五保研/考研计算机专业课面试题,共计224例。这些问题覆盖了计算机科学的核心课程,如英语、数学、数据结构、计算机网络、计算机组成原理、操作系统、数据库、编译原理、软件工程和离散数学等 适合人群:这些面试题旨在帮助学生更好地准备面试,无论是为了保研还是考研,同时也为寻找工作的同学提供了宝贵的参考资料。通过研究这些问题,可以加深对计算机科学各个领域的理解,提高解决实际问题的能力,并增强在面试中的自信心。 能学到什么:1.专业课面试经验:了解在计算机科学领域面试中常见的题型和问题,以及如何有效地回答这些问题。2.专业知识深化:通过分析真实面试题,加强你对计算机科学核心概念的理解。

2024-07-08

空空如也

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

TA关注的人

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