自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做一个有信仰de人的博客

个人博客(https://5faith.xyz/)

  • 博客(75)
  • 资源 (2)
  • 收藏
  • 关注

原创 高并发下如何保证消息消费一次

先确保消息不丢失, 后确保消息消费消费一次。

2025-02-07 16:45:19 941

原创 【面试场景】MySQL分布式主键选取

函数,可以将UUID的时间高位和低位进行互换,从而生成有序的UUID。这种方式既保留了UUID的唯一性,又解决了无序性问题,同时还能优化索引性能。主要的缺点: UUID是随机生成的,没有顺序性,这会导致数据库的B树索引结构不够紧凑。在插入数据时,由于UUID的随机性,在分布式系统中,多个数据库节点独立生成自增主键,很容易出现重复的主键值。例如,多个节点都从1开始递增,会导致主键冲突。此外,UUID的无序性也使得范围扫描变得低效。自增主键仅在单个数据库实例中唯一,无法保证在分布式环境下的全局唯一性。

2025-02-07 16:24:44 592

原创 【面试题】MQ部分[2025/1/13 ~ 2025/1/19]

Raft 的关键特性包括基于任期的领导选举、安全的日志复制机制以及对新 Leader 的严格限制,这些都保证了系统的稳定运行和数据的完整性。Kafka 的事务消息不同于我们理解的分布式事务消息,它的事务消息是实现了消息的Exactly Once 语义,即保证消息在生产、传输和消费过程中的“仅一次”传递。只有让消费者的处理逻辑具有幂等性,保证无论同一条消息被消费多少次,结果都是一样的,从而避免因重复消费带来的副作用。消息堆积是指在消息队列中,消息的生产速度远大于消费速度,导致大量消息积压在队列中。

2025-01-22 14:28:03 671

原创 【面试题】MySQL部分[2025/1/13 ~ 2025/1/19]

MySQL 的主从同步机制是一种数据复制技术,用于将主数据库(Master)上的数据同步到一个或多个从数据库(Slave)中。主要是通过二进制日志(Binary Log,简称 binlog)实现数据的复制。主数据库在执行写操作时,会将这些操作记录到 binlog 中,然后推送给从数据库,从数据库重放对应的日志即可完成复制。

2025-01-21 15:33:49 874

原创 【面试题】Java部分[2025/1/13 ~ 2025/1/19]

Java 内存模型(Java Memory Model, JMM) 是 Java 虚拟机 (JVM) 定义的一种规范,用于描述多线程程序中变量(包括实例字段、静态字段和数组元素)如何在内存中存储和传递的规则。规范了线程何时会从主内存中读取数据、何时会把数据写回主内存。可见性:确保一个线程对变量的修改,能及时被其他线程看到。关键字 volatile 就是用来保证可见性的,它强制线程每次读写时都直接从主内存中获取最新值。有序性:指线程执行操作的顺序。

2025-01-21 14:21:19 749

原创 【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

程序计数器(ProgramCounterRegister):每个线程都有自己的程序计数器,用于指示当前线程执行的字节码指令的行号,以便线程执行时能够回到正确的位置。虚拟机栈(JVMStack):也称为Java方法栈,用于存储方法执行时的局部变量表、操作数栈、动态链接、方法出口等信息。每个线程在执行一个方法时,都会为该方法分配一个栈帧,并将该栈帧压入虚拟机栈,当方法执行完毕后,虚拟机会将其出栈。本地方法栈(NativeMethodStack):与虚拟机栈类似,用于存储本地方法的执行信息。

2025-01-20 14:46:30 910

原创 【面试题】Spring/SpringBoot部分[2025/1/13 ~ 2025/1/19]

什么是SpringIOC定义:SpringIOC(InversionofControl,控制反转)是Spring框架的核心概念之一。它是通过依赖注入(DependencyInjection)实现的。IOC让对象的创建与管理职责由容器负责,而不是由对象自身控制。控制:IOC容器控制对象的创建,IOC容器会根据配置文件来创建对象,在对象的生命周期不同时期根据不同配置进行对象的创建和改造。反转。

2025-01-18 16:14:55 1112

原创 【面试题】Spring/SpringBoot部分[2025/1/6 ~ 2025/1/12]

解析BeanDefinition实例化Bean, 注入依赖, 处理Bean周期初始化方法: InitializingBean和BeanPostProcessor, 发布一些时间比如容器启动事件, 完成启动。加载相应的 Bean 的自动配置。来控制自动配置的加载条件,例如仅在类路径中存在某个类时,才加载某些配置。注解实现,这个注解包含@Import({AutoConfigurationImportSelector.class})注解,导入的这个类会去扫描 classpath 下所有的。中的文件,根据文件中。

2025-01-12 17:44:45 1193

原创 【面试题】Java部分[2025/1/6 ~ 2025/1/12]

Java 8 移除永久代并引入元空间,主要是为了解决 PermGen 固定大小、容易导致内存溢出、GC 效率低的问题。元空间使用本地内存,具备更灵活的内存分配能力,提升了垃圾收集和内存管理的效率。

2025-01-12 17:07:57 764

原创 springboot实现枚举参数

是 Jackson JSON 处理库中的两个注解,它们用于在。过程中定制 Java 对象与 JSON 数据之间的映射。BaseEnum接口中。

2024-07-17 09:25:59 714

原创 链表常见问题

【代码】链表常见问题。

2024-07-16 09:54:38 148

原创 【logback】logback动态日志设置

你可以使用Logback的LoggerContext和Logger类来动态修改日志级别。如果你使用Spring Boot,可以使用LoggingSystem来更方便地管理日志级别。这个例子中,changeLogLevel方法可以动态地修改指定logger的日志级别。表示Logback会每10秒检查一次配置文件的变化,并自动重新加载。

2024-07-12 09:37:45 792

原创 【JDK】JDK11更新内容

jdk11更新的特性。

2024-05-29 19:39:35 1057

原创 【设计模式】JDK实现观察者模式

jdk8和jdk11内置类实现观察者模式

2024-05-29 19:11:59 421

原创 复杂xml解析(JAXB)

复杂xml处理, jaxb注解解析xml

2022-10-17 15:19:47 2506

原创 读取excel

java读取excel和大数据的读取心得

2022-08-22 16:56:53 507

原创 ①数据结构和排序

文章目录一、数据结构1. 链表2. 数组3. 栈4. 队列5. 哈希表6. 堆7. 二叉查找树二、排序1. 冒泡排序2. 选择排序3. 插入排序4. 堆排序5. 归并排序6. 快速排序一、数据结构1. 链表单向链表循环链表(环形链表)双向链表数据呈线性排列, 数据修改和删除较方便2. 数组数据呈线性排, 数据添加较方便, 可以随机访问(通过下标访问数据)3. 栈先进后出(Last In First Out), 可以用于 深度优先搜索例: (AB(CD)E(FG)), 从左边读取,

2021-04-01 16:08:55 445

原创 <4>thymeleaf运算符、内置对象、自带的功能方法

文章目录运算符内置对象功能方法运算符Controller测试类@RequestMapping("/opreator") public String opreator(Model model) { model.addAttribute("sex", 1); model.addAttribute("flag", true); return "opreator"; }前端页面<!DOCTYPE html><h

2020-11-06 17:30:14 307

原创 <3>thymeleaf字面量和字符串连接

Controller测试类@Controllerpublic class LiteralController { @RequestMapping("/literal") public String literal(Model model) { model.addAttribute("sex", 1); model.addAttribute("data", "springboot data"); model.addAttribute("f.

2020-11-06 16:16:55 190

原创 <2>thymeleaf的常见属性

文章目录th:each循环List循环Map循环Array(与List一样)条件判断内敛表达式th:inline内敛文本th:inline="text"内敛脚本th:inline="javascript"一般在标签属性前加上th:th:actionth:methodth:hrefth:srcth:idth:nameth:valueth:attrth:textth:objectth:onclickth:styleth:each条件判断: th:if、th:unless内敛表

2020-11-06 15:58:53 211

原创 <1>thymeleaf表达式

文章目录一、标准表达式#{}二、路径表达式@{}一、标准表达式#{}标准变量表达式用于访问容器(tomcat)上下文环境中的变量,功能和EL中的 ${}相同。thymeleaf中的变量表达式使用${变量名}的方式获取Controller中 model其中的数据。二、路径表达式@{}...

2020-11-06 14:50:12 235

原创 <12>springboot集成thymeleaf模板引擎

创建一个springboot工程,导入以下依赖<dependencies> <!--springboot框架web组件依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </d.

2020-11-03 14:38:10 133

原创 <11>springboot使用logback

此次,使用之前集成Mybatis的项目导入所需依赖,配置资源文件信息<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <depend.

2020-10-31 17:33:09 188

原创 <10>springboot使用servlet和过滤器

文章目录一、使用servlet(必须继承HttpServlet)二、使用过滤器Filter一、使用servlet(必须继承HttpServlet)两种方式:在每个Controller类加@WebServlet(String pattern),启动类添加@ServletCompanscan通过配置注册类@Configurationpublic class ServletConfif { // @Bean是一个方法级别上的注解,主要用在配置类里 // 相当于 // <beans&gt

2020-10-30 22:21:14 211

原创 <9>springboot使用拦截器

文章目录1. 创建一个拦截器类并实现HandlerInterceptor接口2. 创建一个配置类(即SpringMVC配置文件中使用mvc:interceptors )3. 创建测试类1. 创建一个拦截器类并实现HandlerInterceptor接口public class UserInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest req

2020-10-30 21:56:43 109

原创 <8>springboot集成dubbo

创建一个java工程interface,作为接口工程:存放实体bean和业务接口创建两个springboot工程一个是服务提供者provider:业务接口实现类并将服务暴露且注册到注册中心,调用数据持久层添加依赖(dubbo、注册中心、接口工程)配置服务提供者核心配置文件一个是服务消费者consumer:处理客户请求,从注册中心调用服务者所提供的服务添加依赖(dubbo、注册中心、接口工程)配置服务消费者核心配置文件在服务提供者provider和消费者consumer中导.

2020-10-30 17:51:39 118

原创 <7>springboot继承redis

创建一个springboot项目,添加操作Redis的依赖<dependencies> <!--springboot框架web启动依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </d.

2020-10-30 15:16:10 420

原创 <6>sprigboot使用RESTful风格

一般访问风格:http://localhost:8080/index?id=1&sex=0RESTful:http://localhost:8080/index/1/0使用RESTful常用注解:@PathVariable:url中数据注解@GetMapping(查),@PostMapping(增),@PutMapping(改),@DeleteMapping(删)创建一个springboot项目, 并创建实体类Studentpublic class Student { .

2020-10-30 14:54:06 106

原创 <5>springboot使用事务

在上个整合Myybatis项目基础上进行进一步的更改事务是一个完整的业务,只跟SQL的增、删、改有关。修改Controller类添加一个更新的方法@RestControllerpublic class StudentController { @Autowired private StudentService studentService; @GetMapping("/student/{id}") public Student queryStudentByI.

2020-10-30 14:29:34 203

原创 <4>springboot集成Mybatis

创建springboot项目, 在pom.xml导入相应的依赖<dependencies> <!--springboot框架web项目的启动依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> .

2020-10-27 20:21:45 144

原创 <3>springboot集成jsp

创建一个springboot工程, 在src/main创建webapp目录, 并设置为Web文件夹在pom.xml中引入springBoot内嵌Tomcat对jsp的解析依赖<dependencies> <!--springboot框架web项目的启动依赖--> <dependency> <groupId>org.springframework.boot</groupId> <art.

2020-10-27 19:22:19 169

原创 <1>MySQL中常见的函数

文章目录一、单行函数1.1 字符函数1.2 数学函数1.3 日期函数1.4 其他函数1.5 流程控制函数二、聚合函数(分组函数)一、单行函数1.1 字符函数length(): 获取参数值的字节个数# 默认uft8: 中文三个字节# 默认gbk: 中文两个字节SELECT LENGTH(‘jion’); # 4SELECT LENGTH(‘张abc’); # 6# 查看数据使用的字符集SHOW VARIABLES LIKE ‘%char%’concat(): 拼接字符SELE

2020-10-27 16:11:54 119

原创 <2>springboot自定义配置(@Value与@@ConfiguratioinProperties)

文章目录1. @Value的使用1. @Value的使用

2020-10-25 16:56:10 579

原创 <1>使用IDEA初始化一个springboot

使用IDEA自带的初始化选项(需在有网的情况下使用)项目信息的填写勾选Web组件的spring web, 下一步点击完成, 一个简单的springboot项目初始化成功

2020-10-25 16:17:53 306

原创 SVN的安装步骤

Win10 SVN64位安装的步骤, 下载地址: https://tortoisesvn.net/downloads.html安装(1) 进入安装界面(2) 选择Next直到这个页面,选择安装路径,接着Next(3) 进行安装(4) 安装点击Finish即可使用创建版库您的个人计算机上建立一个新的空目录。这个目录可以建立在任何位置,不过在这一教程中,我们将建立 E:\TEST\svn_repos 。现在,你可以右键点击该目录空白处,从右键菜单中选择...

2020-05-14 19:26:37 10608

原创 004线程

目录一、基础信息二、Thread的创建方式三、Thread有关方法四、线程的状态五、同步一、基础信息程序(program):完成特定任务、用某种语言编写的一组指令的集合,即一段静态的代码 进程(process):程序的一次执行过程,即正在运行的一个程序 线程(thrad):一个程序内部的一条执行路径二、Thread的创建方式继承Thrad类/** ...

2020-04-27 10:28:59 171

原创 003异常

一、异常体系结构java.lang.Throwable |----java.lang.Error:一般不编写针对性的代码进行处理。 |-----java.lang.Exception:可以进行异常的处理 |-----编译时异常(checked) |----IOException |----FileNot...

2020-04-19 16:03:27 287

原创 队列简单的笔记

1.线性结构1)线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系2)线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的3)链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息4)线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解...

2020-04-18 22:27:36 217

原创 002面向对象

1.面向对象思想编程内容的三条主线分别是什么?(1)类即类的成员:属性、方法、构造器;代码块、内部类;(2)面向对象的三大特征:封装、继承、多态;(3)其他关键字:this,super,abstract,interface,final,package,import2.面向对象与面向过程面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做 面向对象:强调具备了功能的对象,...

2020-04-18 16:43:44 274

原创 001数组

# 一、一维数组1. 写出一维数组的声明与初始化 ```int[] ids ;//1.静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new int[]{1,2,3,4,5} ;//2.动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] strs = new String[5] ;int[] arr4 = {1,2,3,4,5} ...

2020-04-12 18:34:25 398

数组队列学习代码:队列和环形队列

普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的含义做一个调整:front就指向队列的第一个元素,也就是说arffront]就是 队列的第一个元素front的初始值=0 2)rear变量的含义做一个调整:rear指向队列的最后一个元素的后一个位置.因为希望空出 一个空间做为约定.rear 的初始值=0 3)当队列满时,条件是(rear+1)%maxSize=front【满】 4)对队列为空的条件,rear==front空 5)当我们这样分析,队列中有效的数据的个数(rear+maxSize-front)%maxSize

2020-04-18

稀疏数组的实现java代码

二维数组 转 稀疏数组的思路 1)遍历 原始的二维数组,得到有效的数据的个数sum 2)根据sum就可以创建稀疏数组是sparseArr int[sum+1][3] 3)将二维数组的有效的数据存入到稀疏数组 稀疏数组 转 二维数组的思路 1)先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的chessArr2 = int[11][11] 2)在读取稀疏数组后几行的数据,并赋给原始的二维数组即可

2020-04-18

空空如也

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

TA关注的人

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