自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows安装Java并配置环境变量

如图所示 在cmd命令提示符中输入javac这时 我们右键电脑 点击属性向下翻 点击高级系统设置点击环境变量点击新建 如图 在变量名(N) 和变量值(V)中分别输入引号中“CLASSPATH” 和 “.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar”继续点击新建 如图 在变量名(N) 和变量值(V)中分别输入引号中“path" 和 “%Java_Home%\bin;%...

2023-07-06 08:50:25 658 1

原创 MySql面试题

index)是帮助MySQL高效获取数据的数据结构有序。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

2025-09-22 14:11:42 882

原创 JVM面试题

虚拟机栈每个线程运行时所需要的内存,称为虚拟机栈,先进后出每个栈由多个栈帧(frame)组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法1.垃圾回收是否涉及栈内存?

2025-07-17 16:44:18 604

原创 多线程面试题

本文摘要:文章系统讲解了Java线程相关知识,包括线程与进程的区别、创建线程的四种方式、线程状态转换、wait/sleep区别、并发安全机制(synchronized、CAS、volatile、AQS)、死锁条件、ConcurrentHashMap原理、线程池参数及执行流程等内容。重点对比了synchronized与Lock的差异,分析了ThreadLocal的内存泄露问题,并强调通过ThreadPoolExecutor而非Executors创建线程池的重要性。全文涵盖线程基础、并发控制、线程池优化等核心知

2025-07-06 16:40:26 707

原创 RabbitMQ面试题汇总

当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter)消费者使用basic.reject或basic.nack声明消费失败,并且消息的requeue参数设置为false消息是一个过期消息,超时无人消费要投递的队列消息堆积满了,最早的消息可能成为死信如果该队列配置了属性,指定了一个交换机,那么队列中的死信就会投递到这个交换机中,而这个交换机称为死信交换机,简称DLX。

2025-06-29 14:19:11 1149

原创 SSM框架面试题

AOP,即面向切面编程,在Spring中用于将那些与业务无关但对多个对象产生影响的公共行为和逻辑抽取出来,实现公共模块的复用,降低耦合,常用的应用场景包括公共日志保存和事务处理。比如日志当用户在浏览器中访问时,切面类(SysAspect)通过@Around 获取切点 切点通过@Log注解获取UserController类中的getById()方法,对它进行环绕增强。3、Spring中的事务是如何实现的?声明式事务管理:声明式事务管理建立在AOP之上的。其本质是通过AOP。

2025-06-28 19:52:30 906

原创 Redis面试题

查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求丢查数据库。这样可能导致 DB 挂掉。这种情况大概率是遭到了攻击。,查询返回的数据为空,仍把这个空结果进行缓存:实现简单:当有很多id查询的不到的数据会被写入到redis中,消耗内存,增加redis的压力。可能会发生数据不一致问题。

2025-06-13 13:56:03 817

原创 RabbitMQ高级(黑马程序员笔记)

由于网络波动sudo service rabbitmq-server stop # 停止RabbitMQ服务当网络不稳定的时候,利用重试机制可以有效提高消息发送的成功率。不过SpringAMQP提供的重试机制是阻塞式的重试,也就是说多次重试等待的过程中,当前线程是被阻塞的,会影响业务性能。如果。如果一定要使用,请合理配置等待时长和重试次数,当然也可以考虑来执行发送消息的代码。

2025-05-15 16:53:38 1228

原创 5、SpringBoot整合RabbitMQ

Bean。

2025-04-30 17:14:26 870

原创 4、RabbitMQ的七种工作模式介绍

生产者,也就是要发送消息的程序消费者,消息的接受者消息队列,图中Queue类似提个邮箱,可以缓存消息;生产者向其中投递消息,消费者从中取出消息。特点:一个生产者P,一个消费者C,消息只能被消费一次,也称为点对点(Point-to-Point)模式适用场景:消息只能被单个消费者处理。

2025-04-29 12:02:44 1357

原创 3、初识RabbitMQ

界面上的导航栏共分6部分,分别代表不同的意思。

2025-04-26 10:07:25 1140

原创 2、Ubuntu 环境下安装RabbitMQ

⼀. 安装Erlang⼀. 安装ErlangRabbitMqRabbitMq需要Erlang语⾔的⽀持,在安装rabbitMq之前需要安装erlang需要Erlang语⾔的⽀持,更新软件包安装erlang查看erlang版本erl退出命令halt() .

2025-04-25 10:47:57 966

原创 1、RabbitMQ的概述笔记

Rabbit是一个公司名.MQ(nessage queue) 消息队列的意思,RabbitMQ 是 Rabbit企业下的一个消息队列产品。RabbitMQ是⼀个实现了AMQP的 消息队列 服务,是当前主流的消息中间件之⼀.即Advanced MessageQueuingProtocol(高级消息队列协议),是一个通用的应用层协议,提供统一消息服务的协议,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端或中间件,开发语言等条件的限制。二、MQ是什么。

2025-04-25 10:02:56 903

原创 Ubuntu服务器 无法正常启动redis

当我们在阿里云服务器上启动redis服务 运行下述命令时。安装完成之后 再次运行下述命令。

2025-04-04 13:52:05 639

原创 Spring AOP

什么是面向切面编程呢?切面就是指某一类特定问题,所以AOP也可以理解为面向特定方法编程什么是面向特定方法编程呢?比如"登录校验”,就是一类特定问题.登录校验拦截器,就是对"登录校验"这类问题的统一处理.所以,.Spring框架实现了这种思想,提供了拦截器技术的相关接口.同样的,统一数据返回格式和统一异常处理,也是AOP思想的一种实现.我们现在有一个项目,项目中开发了很多的业务功能。

2025-03-23 15:27:24 844

原创 TCP和UDP

网络上通信设备,事先规定的链接规则,以及传输数据的规则被称为网络通信协议。目的是为了OSI网络参考模型:全球网络互联标准TCP/IP网络模型:事实上的国际标准。

2025-03-20 11:20:52 326

原创 对论坛系统的测试报告

是一种在网络环境中供用户进行交流和讨论的平台。它的功能背景主要源于早期互联网社区的需求,即为网民提供一个可以自由发表观点、分享信息、交流想法的空间。随着时间的发展,论坛逐渐演变成了一个多功能的社交平台,具备了以下几个核心功能如:注册,登录,帖子发布,帖子更新,查看个人帖子,发私信,回复私信修改个人信息等。

2025-03-18 14:20:46 667

原创 python黑马程序员(单例模式&工厂模式)笔记

可以看出 不论实在 Test1.py中 还是在 Test2.py中 输出对象的地址是相同的。创建str_tools_py.py Test1.py Test2.py 三个文件。使用特定的套路得到特定的效果。单例模式就是对一个类,只获取其。1、设计模式就是一种编程套路。2、什么时单例设计模式。

2025-03-18 10:29:11 811

原创 爬虫(requsets)笔记

一个类型六个属性r.text获取网站源码r.encoding访问或定制编码方式r.url获取请求的urlr.content响应的字节类型响应的状态码r.headers响应的头信息。

2025-03-18 10:28:19 3308

原创 selenium_交互 (谷歌浏览器驱动下载 xpath插件安装)

(1)查看谷歌浏览器版本谷歌浏览器右上角‐‐>帮助‐‐>关于查看 浏览器版本:(2)操作谷歌浏览器驱动下载地址http//storagegoogleapiscomindexhtml找到与浏览器相应的版本:以下两个版本都可以:找到相应版本下载:解压安装包 添加到pycharm的文件中:(3)Xpath插件安装:打开谷歌的扩展应用程序下载插件:百度网盘:链接:https://pan.baidu.com/s/1TJ_HKaxKpURWNufJ_D72pQ。

2025-03-18 10:26:15 1442

原创 尚硅谷爬虫(解析_xpath的基本使用)笔记

HTML中添加分别在北京和上海中添加 id='1' id='2'右键——检查——点击左上角小箭头——点击百度一下 即可快速定位。右键定位后的代码——Copy——Copy xPath。如果解析服务器响应文件使用etree.HTML()如果解析本地文件使用etree.parse。xpath 严格遵守HTML规范。:查找所有子孙节点,不考虑层级关系。在meta标签中加入。

2025-03-18 10:24:47 974

原创 SpringBoot统一功能处理

也就是说,允许开发人员提前预定义一些逻辑,在用户的请求响应前后执行.也可以在用户请求前阻止其执行.在拦截器当中,开发人员可以在应用程序中做一些通用性的操作,比如通过拦截器来拦截前端发来的请求,判断Session中是否有登录用户的信息.如果有就可以放行,如果没有就进行拦截.可以看到preHandle方法执行之后就放行了,开始执行目标方法,目标方法执行完成之后执行postHandle和afterCompletion方法.

2025-02-26 12:41:49 1005

原创 springboot博客系统详解与实现(后端实现)

用户完整登录,可以查看所有用户的博客信息 通过点击查看全文可以查看该博客的全部内容。如果该博客的作者是当前用户,那么该用户可以完成修改文章、删除文章、发布文章等操作。

2025-02-25 21:06:26 1136 8

原创 Mybatis-Plus的使用

在实际的开发中,MyBatis-Plus提供的操作不能满⾜我们的实际需求,MyBatis-Plus也提供了⾃定义 SQL的功能,我们可以利⽤Wrapper构造查询条件,再结合Mapper编写SQL。为了使用这一功能,mybatis-plus版本不低于3.0.7代码示例1完成下述SQL查询@Mapper测试代码@Test注意事项:在自定义SQL时,传递Wrapper对象作为参数时,参数名必须为ew,或者使用注解。

2025-02-17 14:28:31 1222

原创 Mybatis高级(动态SQL)

完成不同条件下不同的sql拼接,那如果在添加用户的时候有不确定的字段传入。这个时候就需要。

2025-02-15 20:59:16 1773

原创 Mybatis的其他查询

数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使用⼀个现有的数据库连接, 而不是再重新建立⼀个。没有使用数据库连接池的情况:每次执行SQL语句,要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行完,再关闭连接对象释放资源.这种重复的创建连接,销毁连接比较消耗资源程序启动时,会在数据库连接池中创建一定数量的Connection对象,当客户请求数据库连接池,会从数据库连接池中获取Connection对象,然后执行SQL,SQL语句执行完,再把Connection归还给连接池.

2025-02-08 17:20:47 653

原创 MyBatis XML文件配置

2.结果映射。

2025-02-05 21:16:56 1216

原创 MyBatis 初级

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。持久层:指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库。 简单来说MyBatis是更简单完成程序和数据库交互的框架。创建springboot工程,并导入mybatis的起步依赖、mysql的驱动包这种方式pom.xml文件中会自动导入 MyBatis 和 MySQL也可以通过手动导入MyBatis和MySQL2.1.2 数据库的准备创建用户表,并创建对应的实体类User 查询user_info表的数据 创建

2025-02-04 20:48:07 706

原创 八、Spring Boot 日志详解

SLF4J不同于其他日志框架,它不是⼀个真正的日志实现,而是⼀个抽象层,对日志框架制定的⼀种规范, 标准,接口.所有SLF4J并不能独立使用,需要和具体的日志框架配合使用.SLF4J 就是其他日志框架的门面.SLF4J可以理解为是提供日志服务的统一API接口,并不涉及到具体的 日志逻辑实现.引入日志门面引入门面日志框架之后,应用程序和日志框架(框架的具体实现)之间有了统一的AP接口(门面日志框架实现),此时应用程序只需要维护一套日志文件配置,且当底层实现框架改变时,也不需要更改应用程序代码.

2025-02-01 13:14:57 1531 6

原创 七、深入了解SpringBoot的配置文件

1.理论上讲·properties和·yml可以并存在于一个项目中,当·properties和·yml。properties 配置⽂件是最早期的配置⽂件格式,也是创建SpringBoot项⽬默认的配置⽂件。,不止是Java中可以使用,在Golang,Python,Ruby,JavaScript中也可以使用。并存时,两个配置都会加载.如果配置文件内容有冲突,则以properties为主,也就是。,可以简单表达对象,数组,List,Map等数据形态.yml是树形结构的配置文件,它的。如果在项目中,想要主动的。

2025-01-28 17:09:58 1190

原创 IDEA创建&修改gitee仓库

创建gitee仓库 点击复制仓库地址右击项目名 --> Open In --> Terminal初始化仓库添加仓库地址 复制之前创建的仓库地址。

2025-01-26 15:50:35 1299

原创 六、深入了解DI

是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象. 在上⾯程序案例中,我们使⽤了 @Autowired 这个注解,完成了依赖注⼊的操作. 简单来说,就是把对象取出来放到某个类的属性中。

2025-01-24 17:20:11 1316

原创 五、深入了解IoC

对于同⼀个类,定义多个对象@Component@BeanuserInfo.setName("张三");@BeanuserInfo.setName("李四");定义了多个对象的话,我们根据类型获取对象,获取的是哪个对象?//获取Spring上下文对象//从Spring上下文中获取对象报错信息显⽰:期望只有⼀个匹配,结果发现了两个,userInfo1,userInfo2从报错信息中,可以看出来,@Bean注解的bean,bean的名称就是它的⽅法名。

2025-01-23 18:50:33 940

原创 四、Spring初识IoC和DI

需求:造一辆车先设计轮⼦(Tire),然后根据轮⼦的⼤⼩设计底盘(Bottom),接着根据底盘设计⻋⾝(Framework),最 后根据⻋⾝设计好整个汽⻋(Car)。这⾥就出现了⼀个"依赖"关系:汽⻋依赖⻋⾝,⻋⾝依赖底盘,底 盘依赖轮⼦.//汽车类//车身类//地盘类//轮胎类当我们要去添加轮胎类的Tire构造方法的形参编译时会出现一层一层的关联报错!通过上述案例会发现这样的设计 代码可维护型很低,程序的耦合度⾮常⾼(修改⼀处代码,影响其他处的代码修改).

2025-01-20 19:49:13 1124

原创 三、Spring 应用分层

应⽤分层是⼀种软件开发设计思想,它将应⽤程序分成N个层次,这N个层次分别负责各⾃的职责,多个 层次之间协同提供完整的功能.根据项⽬的复杂度,把项⽬分成三层,四层或者更多层. 常⻅的MVC设计模式,就是应⽤分层的⼀种具体体现.

2025-01-19 18:53:56 891

原创 二、学习SpringMVC

RequestMapping 是SpringWebMVC应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的 路由映射的. 表⽰服务收到请求时,路径为/sayHi的请求就会调⽤sayHi这个⽅法的代码.路由映射:当⽤⼾访问⼀个URL时,将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射.如果去掉@RestController会怎么样?注释@RestController 再次访问http://127.0.0.1:8080/sayHi 如下图。

2025-01-16 11:18:42 907

原创 一、什么是SpringWebMVC?

是ModelViewController的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分 为模型、视图和控制器三个基本部分指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型 来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型。

2024-12-21 20:07:46 366

原创 十一、定时器

定时器:定时器也是软件开发中的⼀个重要组件. 类似于⼀个 "闹钟". 达到⼀个设定的时间之后, 就执⾏某个指定 好的代码.定时器是⼀种实际开发中⾮常常⽤的组件举个例子:⽐如⽹络通信中, 如果对⽅ 500ms 内没有返回数据, 则断开连接尝试重连.类似于这样的场景就需要⽤到定时器.运行结果: 定时器的构成• ⼀个带优先级队列(不要使⽤ PriorityBlockingQueue, 容易死锁!)当管理多个任务的时候,需要确保,时间最早的任务,最先执行,通过遍历的方式,找到时间最早.使用优先队列• 队列中的

2024-12-09 16:30:45 322

原创 十、线程池

线程池的概念可以与现实生活中的某些场景进行类比,比如一家餐厅的服务模式。让我们来详细看看这个例子:想象一下,有一家繁忙的餐厅,顾客(任务)不断进入餐厅点餐。每一张桌子都有一个服务员(线程)负责接待和服务。如果每次有新顾客到来,餐厅都雇佣新的服务员,那么很快就会导致成本过高,并且管理这些服务员也会变得非常复杂。为了更高效地服务顾客,餐厅决定采用一组固定数量的服务员(线程池)。这组服务员在没有顾客时处于待命状态。当有新顾客到来时,任意一个空闲的服务员会立即上前服务这位顾客。

2024-12-07 13:26:13 1051

原创 九、阻塞队列

阻塞队列是⼀种特殊的队列.也遵守"先进先出"的原则. 阻塞队列能是⼀种线程安全的数据结构,并且具有以下特性:• 当队列满的时候,继续⼊队列就会阻塞,直到有其他线程从队列中取⾛元素.• 当队列空的时候,继续出队列也会阻塞,直到有其他线程往队列中插⼊元素.阻塞队列的⼀个典型应⽤场景就是"⽣产者消费者模型".这是⼀种⾮常典型的开发模型.⽣产者消费者模式就是通过⼀个容器来解决⽣产者和消费者的强耦合问题。

2024-12-01 16:55:36 310

空空如也

空空如也

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

TA关注的人

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