自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【面试】计算机网络

防止旧的重复连接初始化造成混乱在网络中,数据包可能会延迟或重复到达。如果只有两次握手,服务器无法区分当前请求是新的还是旧的重复连接请求。三次握手通过客户端的最后一次确认(ACK),确保连接是基于最新的请求建立的。假设客户端发送了一个 SYN 请求,但由于网络延迟,这个请求在连接关闭后才到达服务器。如果没有第三次握手,服务器可能会误认为这是一个新的连接请求,从而建立无效连接。通过第三次握手,客户端可以明确告知服务器这是对最新 SYN 请求的确认,避免旧请求干扰。确保双方都能发送和接收数据。

2025-03-11 03:33:29 1345

原创 【面试】JVM

Java中Stop-The-Vorld机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起。这是Java中一种全局暂停现象,全局停顿,所有java代码停止,native代码可以执行,但不能与JVM交互。不管选择哪种GC算法,stop-the-world都是不能彻底避免的,只能尽量降低STW的时长。为什么需要STW呢首先,如果不暂停用户线程,就意味着期间会不断有垃圾产生,永远也清理不干净。其次,用户线程的运行必然会导致对象的引用关系发生改变,这就会导致两种情况:漏标和错标。

2025-03-11 02:48:32 950

原创 【面试】Redis

Redis 提供了 Bitmaps 这个 “数据类型” 可以实现对位的操作。Bitmaps 本身不是一种数据类型, 实际上它就是字符串(key-value) , 但是它可以对字符串的位进行操作。Bitmaps 单独提供了一套命令, 所以在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。可以把 Bitmaps 想象成一个以位为单位的数组, 数组的每个单元只能存储 0 和 1, 数组的下标在 Bitmaps 中叫做偏移量。常用命令。

2025-03-11 01:57:52 1219

原创 【面试】框架

所谓的 IOC,就是控制反转的意思。何为控制反转?我们可以根据字面意思理解,就是对于某个东西A,原来的控制权在使用方B,B想用就能用,不想用就不用。现在把控制权交还给了A,只有A给了才能用,这样就是控制反转了。class A {}class B {// B需要将A的实例new出来,也就是我们说的控制当有了IOC后@Component // 说明A自己控制自己,把自己初始化出来,注入给了容器class A {}class B {// B不需要控制a,直接使用。

2025-03-10 23:40:57 1237

原创 【面试】Kafka

Kafka 的重平衡(Rebalance)机制是指在消费者组(Consumer Group)中,当消费者数量发生变化(如新增、减少或崩溃)时,Kafka 重新分配分区(Partition)给消费者的过程。重平衡的目的是确保每个分区只被组内的一个消费者消费,从而实现负载均衡和高可用性。消费者加入组:新的消费者加入消费者组。消费者离开组:消费者主动离开(如关闭)或崩溃。订阅主题变化:消费者组订阅的主题或分区数量发生变化。分区数量变化:主题的分区数量发生变化。重平衡的过程。

2025-03-10 16:37:56 1028

原创 【面试】Zookeeper

ZooKeeper 的核心特性高可用性:ZooKeeper 通过多节点集群实现高可用性,即使部分节点故障,服务仍然可用。一致性:ZooKeeper 使用 ZAB(ZooKeeper Atomic Broadcast)协议保证数据的一致性。顺序性:ZooKeeper 保证客户端的操作顺序与请求顺序一致。高性能:ZooKeeper 的设计目标是高吞吐量和低延迟。ZNode 的类型ZooKeeper 的数据模型类似于文件系统的树形结构,每个节点称为 ZNode。

2025-03-09 17:46:16 1323

原创 【面试】Java 多线程

什么是进程是包含了某些资源的内存区域,操作系统利用进程把它的工作划分为一些功能单元。电脑中时会有很多单独运行的程序,每个程序有一个独立的进程。例如微信,IDEA,GOOGLE等等。什么是线程进程中包含的一个或多个执行单元称为线程,线程只能归属一个进程,并且线程只能访问该进程拥有的资源。当操作系统创建一个进程,该进程会自动申请一个主线程作为首要的执行任务。线程的切换耗时小,把线程称为轻负荷线程。一个进程由一个或多个线程组成,彼此间完成不同的工作,多个线程同时执行,称为多线程进程和线程的关系。

2025-03-09 16:27:27 964

原创 【面试】MySQL

关系型数据库是基于关系模型(表结构)的数据库,数据以行和列的形式存储在表中,表与表之间通过关系(如主键和外键)连接。非关系型数据库是一种不基于关系模型的数据库,数据存储方式灵活,可以是键值对、文档、列族或图结构。数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。查看看某个表用了什么引擎:show create table 表名,在显示结果里参数engine后面的就表示该表当前用的存储引擎。

2025-03-09 14:55:58 1214

原创 【面试】Java 集合

① 集合判空判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()==0 的方式。② 集合转 Map在使用 java.util.stream.Collectors 类的 toMap() 方法转为 Map 集合时,一定要注意当 value 为 null 时会抛 NPE 异常。// 空指针异常③ 集合遍历不要在 foreach 循环里进行元素的 remove/add 操作。

2025-03-09 04:25:12 861

原创 【面试】Java 基础

泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。为什么使用泛型保证了类型的安全性在没有泛型之前,从集合中读取到的每一个对象都必须进行类型转换,如果不小心插入了错误的类型对象,在运行时的转换处理就会出错。消除强制转换。

2025-03-09 01:47:14 1007

原创 POI 和 EasyExcel

操作Excel目前比较流行的就是和阿里巴巴的。

2025-02-16 05:07:39 2048

原创 MongoDB 学习

MongoDB是一种非关系型数据库,MongoDB中的记录是一个文档,它是一个由字段和值对组成的数据结构。

2023-06-01 15:31:50 1634 1

原创 Swagger 常用注解

通过代码和注释自动生成文档。在 Swagger 框架下,开发人员可对服务进行归类说明,对方法,模型,返回结果等进行详细说明。

2023-05-30 19:00:29 5462

原创 MySQL 执行计划分析

执行计划 是指一条 SQL 语句在经过 MySQL 查询优化器 的优化会后,具体的执行方式。

2023-03-23 15:21:25 550

原创 Kafka 介绍和使用

Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,由Scala和ava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

2023-02-21 15:07:14 1724

原创 服务间调用方式 OpenFeign 的介绍和使用

Feign 停更了,OpenFeign 是在 Feign 基础上开发出来的。

2023-02-17 14:40:50 1803

原创 Nginx 介绍和使用

Nginx 快速入门

2023-02-16 23:53:22 1910

原创 Spring Cloud Gateway

微服务背景下,一个系统被拆分为多个服务,但是像安全认证,流量控制,日志,监控等功能是每个服务都需要的,没有网关的话,我们就需要在每个服务中单独实现,这使得我们做了很多重复的事情并且没有一个全局的视图来统一管理这些功能。一般情况下,网关可以为我们提供请求转发、安全认证(身份/权限认证)、流量控制、负载均衡、降级熔断、日志、监控、参数校验、协议转换等功能。上面介绍了这么多功能,实际上,网关主要做了两件事情:请求转发 + 请求过滤。

2023-02-16 14:36:56 908

原创 Git 介绍和使用

Git 是一个免费,开源的分布式版本控制系统,可以敏捷高效的进行各种规模大小的版本管理。

2023-02-15 14:01:35 381 1

原创 Redis 入门到精通

缓存就是数据交换的缓冲区(称作Cache),是临时存贮数据(使用频繁的数据)的地方。当用户查询数据,首先在缓存中寻找,如果找到了则直接执行,如果找不到则去数据库中查找。

2023-02-13 11:41:49 1414 1

原创 PageHelper 分页插件

pagehelper 是 mybatis 提供的分页插件,目前支持 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库。

2023-02-12 14:50:40 744

原创 p6spy 完整 SQL 打印

P6Spy 是一个框架,无需对现有应用程序进行任何代码更改,即可无缝拦截和记录数据库数据。通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析。

2023-02-10 14:20:27 1447

原创 Future & CompleteFuture

Java8 中的 completeFuture 是对 Future 的扩展实现, 主要是为了弥补 Future 没有相应的回调机制的缺陷。

2023-02-08 15:05:33 3587 3

原创 Spring Boot 注册中心 - ZooKeeper

注册中心的作用就是存放和调度服务,实现服务和注册中心,服务与服务之间的通信。

2023-02-06 11:01:58 1852

原创 SpringBoot 整合 Druid

作为后台服务开发,在日常工作中我们天天都在跟数据库打交道,一直在进行各种CRUD操作,都会使用到数据库连接池。按照发展历程,业界知名的数据库连接池有以下几种:c3p0、DBCP、Tomcat JDBC Connection Pool、Druid 等。

2023-02-01 16:59:55 273

原创 Stream 管道流

在 java8 中添加了一个新的抽象,称之为 Stream,可以让程序员以一种声明式的方式处理数据,Stream流的处理方式,可以把要处理的元素看成一种流,流在管道中传输,并且在管道的节点上进行处理。

2023-01-17 10:59:44 1570

原创 Maven

Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。接下来我们就来介绍一下项目构建和依赖管理。

2023-01-13 16:11:42 743

原创 ZooKeeper 相关概念总结

ZooKeeper 最早起源于雅虎研究院的一个研究小组。

2023-01-12 16:30:01 7559

原创 分布式 ID 详解

分布式 ID 是分布式系统下的 ID。分布式 ID 不存在与现实生活中,属于计算机系统中的一个概念。

2022-12-30 10:38:11 8839

原创 Spring Boot 整合 MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

2022-12-28 10:42:18 139

原创 Spring MVC 拦截器

Spring MVC 提供了一个拦截器的机制,它专门用于拦截 controller层 的路由请求。

2022-11-18 14:54:06 363

原创 Spring Boot 整合 Quartz - 作业调度框架

Quartz 是一个定时任务调度框架,简单易用,功能强大可以使实现定时任务的。

2022-11-18 10:03:07 1135

原创 Spring Boot 整合 AOP

在 Spring 框架中有一个 AOP 子框架,自己创建了一套独有的表达式语言,通过这些表达式语言,可以轻松控制业务类中某些方法横切或植入新功能,以达到低耦合的效果。Spring AOP 底层用的就是动态代理,不用写动态代理代码。

2022-11-17 14:39:47 1328

原创 log4j2 日志介绍和使用

日志对于项目的重要性不言而喻,现在市面上的日志框架多种多样:Log4j、Log4j2、Slf4j、JDKLog、Logback 等等。Log4j 目前已经停止更新。Apache 推出了新的 Log4j2 代替 Log4j,Log4j2 是 Log4j 的升级,与其前身Log4j 相比有了显着的改进,并提供了许多 Logback 可用的改进,因此 Log4j2 + Slf4j 应该是未来的大势所趋。

2022-11-16 15:28:09 2228

原创 Mybatis 自动生成实体代码的 generator 插件(表转实体类)

Maven 是一个优秀的项目构建和管理工具,mybatis-generator 插件用于快速生成 xml 与实体。分为三步,第一步在 pom.xml 中添加依赖,第二步创建 generatorConfig.xml,第三步运行执行命令生成代码

2022-11-15 14:15:17 756

原创 Spring Boot 整合 Canal

canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。

2022-11-09 16:41:51 10651

原创 Idea 代码格式化

idea 代码格式化

2022-11-03 11:16:15 15672 2

原创 JVM运行时数据区域

Java 虚拟机在执⾏ Java 程序的过程中会把它管理的内存划分成若⼲个不同的数据区域。JDK1.8 和之前的版本略有不同。

2022-09-02 11:44:10 1138

原创 Spring Boot 容器化 docker 命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。...

2022-08-01 17:08:38 812

原创 VMware 虚拟机安装与使用

VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMware采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。...

2022-07-07 16:01:25 63125 9

空空如也

空空如也

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

TA关注的人

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