- 博客(75)
- 资源 (2)
- 收藏
- 关注
原创 【面试场景】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
原创 【logback】logback动态日志设置
你可以使用Logback的LoggerContext和Logger类来动态修改日志级别。如果你使用Spring Boot,可以使用LoggingSystem来更方便地管理日志级别。这个例子中,changeLogLevel方法可以动态地修改指定logger的日志级别。表示Logback会每10秒检查一次配置文件的变化,并自动重新加载。
2024-07-12 09:37:45
792
原创 ①数据结构和排序
文章目录一、数据结构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>
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
数组队列学习代码:队列和环形队列
2020-04-18
稀疏数组的实现java代码
2020-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人