自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 蚂蚁金服 电话一面

蚂蚁金服 电话一面。

2025-03-14 11:54:44 327

原创 24天 - IO模型有哪些?Select、Poll、Epoll 之间有什么区别?为什么网络 I/O 会被阻塞?

总的来说,epoll在处理大量文件描述符和高并发场景下具有更高的效率和更好的性能,而select和poll在一些简单的场景或跨平台的项目中仍然有一定的应用价值。:即输入-处理-输出模型,用于描述一个功能或模块的处理过程。输入是指系统接收的外部数据或信息,处理是对输入数据进行的操作和变换,输出是处理后的结果。

2025-03-14 11:52:01 922

原创 23天 - 线程和进程有什么区别?进程之间的通信方式有哪些?进程的调度算法你知道吗?

进程:进程是程序的一次动态执行过程,是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立地址空间、内存、栈等资源。线程:线程是进程中的一个执行单元,是CPU调度和执行的最小单位。线程共享所属进程的资源,包括内存、文件描述符等,但每个线程有自己的程序计数器、栈和本地存储。进程:独立资源、开销大、通信复杂、适用于需要隔离的任务。线程:共享资源、开销小、通信简单、适用于需要高并发的任务。进程间通信的方式多种多样,选择哪种方式取决于具体的应用场景和需求。

2025-03-13 19:23:27 689

原创 22 - 天 TCPIP 四层模型是什么?Cookie、Session、Token 之间有什么区别?从网络角度来看,用户从输入网址到网页显示,期间发生了什么?

这个过程涉及到多个层次的网络协议和系统协作,从应用层的HTTP协议到传输层的TCP协议,再到网络层的IP协议和数据链路层的以太网协议等。每个步骤都需要精确的协调和数据传输,以确保用户能够快速、准确地获取所需的网页内容。当用户在浏览器中输入网址并按下回车键后,到网页显示之前,浏览器和网络会进行一系列复杂的操作。

2025-03-13 19:18:20 723

原创 21天 - 说说 TCP 的四次挥手?TCP 的粘包和拆包能说说吗?说说 TCP 拥塞控制的步骤?

客户端:发送FIN→ 收到ACK→ 发送ACK→ 收到ACK→ 进入TIME_WAIT→ 进入CLOSED服务器:收到FIN→ 发送ACK→ 发送FIN→ 收到ACK→ 进入CLOSED通过这四次挥手,TCP 连接被优雅地断开,确保了数据传输的完整性和可靠性。原理:设计一个自定义的协议头,包含消息的长度、类型等信息。在每条消息的前面添加这个协议头,接收端根据协议头中的信息来解析消息。示例:协议头可以包含消息长度、消息类型等字段,接收端根据协议头中的消息长度来读取消息内容。

2025-03-13 19:17:22 888

原创 20天 - TCP 和 UDP 有什么区别?说说 TCP 的三次握手?TCP 是用来解决什么问题?

TCP 强调数据传输的可靠性和完整性,适用于需要确保数据准确到达的场景;UDP 则更注重传输速度和实时性,适用于对数据丢失不太敏感、追求快速传输的场景。TCP通过上述机制确保了数据传输的可靠性、顺序性和完整性,适用于对数据准确性要求高的场景,如网页浏览、文件传输、电子邮件等。

2025-03-10 17:27:43 1455

原创 19天 - HTTP 1.0 和 2.0 有什么区别?HTTP 2.0 和 3.0 有什么区别?HTTP 和 HTTPS 有什么区别?

HTTP 2.0 在性能、效率和安全性方面对 HTTP 1.0 进行了重大优化,适合现代 Web 应用的高性能传输需求。HTTP:是一种用于从万维网服务器传输超文本到本地浏览器的传输协议,明文传输,基于 TCP 协议。HTTPS:是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下面加了一层 SSL/TLS 加密协议,用于安全的 Web 网站访问。HTTPS 是 HTTP 的安全升级版,通过 SSL/TLS 加密确保数据传输的安全性,适用于需要保护用户隐私和敏感信息的场景。

2025-03-10 17:23:11 724

原创 18天 - 常见的 HTTP 状态码有哪些?HTTP 请求包含哪些内容,请求头和请求体有哪些类型?HTTP 中 GET 和 POST 的区别是什么?

GET适合用于获取资源、传递少量数据、可缓存的场景。POST适合用于提交数据、传递大量数据、需要改变服务器状态的场景。选择使用 GET 还是 POST,需要根据具体需求和场景来决定,以确保数据的安全性和请求的效率。

2025-03-10 17:18:04 695

原创 17天 - 谈谈你了解的最常见的几种设计模式,说说他们的应用场景? 你认为好的代码应该是什么样的?工厂模式和抽象工厂模式有什么区别?

工厂模式提供一个接口,用于创建一个对象,但由子类决定实例化哪一个类。它将对象的创建推迟到子类。抽象工厂模式提供一个接口,用于创建一系列相关或依赖的对象,而无需指定它们的具体类。它强调的是创建一系列对象,而不是单一对象。如果你的系统需要动态创建对象,并且对象类型在运行时确定,使用工厂模式。如果你的系统需要创建一系列相关对象,并且这些对象需要保持一致性或依赖性,使用抽象工厂模式。抽象工厂模式在结构上比工厂模式更复杂,但提供了更高的灵活性和扩展性,适用于更复杂的对象创建场景。

2025-03-10 17:12:59 643

原创 16天 - 单例模式有哪几种实现?如何保证线程安全?什么是策略模式?一般用在什么场景?什么是模板方法模式?一般用在什么场景?

策略模式是一种行为型设计模式,它允许你定义一系列算法,把它们封装起来,并使它们可以互相替换。策略模式让你能够间接地选择算法,而无需修改使用该算法的代码。模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法模式使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。

2025-03-10 17:11:32 949

原创 15天 — 如何解决 Redis 中的热点 key 问题?Redis 集群的实现原理是什么?Redis 中的 Big Key 问题是什么?如何解决?

当客户端需要访问某个键值对时,它会根据键的哈希值计算出对应的哈希槽,然后根据缓存的拓扑结构信息,直接将请求发送到负责该哈希槽的节点上。此时,接收到错误请求的节点会向客户端返回一个特殊的错误信息,告诉客户端应该将请求发送到哪个正确的节点上,客户端收到该信息后会重新发送请求到正确的节点。Redis 中的 Big Key 问题是指在 Redis 数据库中,某些键值对占用的内存空间过大,导致在高并发场景下,对这些键值对的访问和操作可能引发严重的性能问题,甚至导致系统瘫痪。

2025-03-05 14:59:13 880

原创 14天 -- Redis 的持久化机制有哪些?Redis 主从复制的实现原理是什么? Redis 数据过期后的删除策略是什么?

如果对数据丢失的容忍度较高,可以使用 RDB。如果需要更高的数据安全性,建议使用 AOF 或混合持久化。在实际使用中,可以根据业务需求和性能要求选择合适的持久化策略。Redis 主从复制的实现原理包括全量复制、部分复制、命令传播和故障转移等机制。全量复制用于初始数据同步,部分复制用于处理网络中断后的数据恢复,命令传播用于实时保持数据一致性。通过这些机制,Redis 能够实现高效的数据冗余和高可用性。Redis 的数据过期删除策略包括惰性删除、定期删除和内存淘汰。惰性删除。

2025-03-04 18:09:12 927

原创 13天 -- Redis 中如何实现分布式锁? Redis 的 Red Lock 是什么?你了解吗? Redis 实现分布式锁时可能遇到的问题有哪些?

简单实现:使用SETNX命令结合过期时间,适用于简单场景。高级实现:使用 Redisson 客户端或 RedLock 算法,适用于复杂场景,提供更高的可靠性和安全性。原子性保证:使用 Lua 脚本确保加锁和解锁操作的原子性,避免竞态条件。根据具体业务需求和场景选择合适的实现方式。

2025-03-03 22:06:53 777

原创 12天 -- Redis 中如何保证缓存与数据库的数据一致性?Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?Redis String 类型的底层实现是什么?(SDS)

引入分布式锁避免并发读写冲突,配合延时双删进一步保障缓存一致性。

2025-03-03 22:05:52 506

原创 11天 -- Redis 中跳表的实现原理是什么?Redis 的 hash 是什么?Redis Zset 的实现原理是什么?

Redis 中的跳表节点由。

2025-03-01 18:49:11 1156

原创 10天 -- Redis 中常见的数据类型有哪些?Redis 为什么这么快?为什么 Redis 设计为单线程?6.0 版本为何引入多线程?

Redis 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。

2025-03-01 18:47:59 918

原创 MySQL 中如何解决深度分页的问题?什么是 MySQL 的主从同步机制?它是如何实现的?如何处理 MySQL 的主从同步延迟?

MySQL 的主从同步机制是一种将一个或多个从库(Slave)与主库(Master)建立连接,实现从库实时获取主库数据的机制。主库负责处理所有数据的增删改操作,而从库则负责读取数据,通过将主库的数据同步到从库,实现主从数据一致,已达到负载均衡、高可用等目的。

2025-02-27 20:23:25 884

原创 MySQL 中有哪些锁类型?MySQL 事务的二阶段提交是什么?MySQL 中如果发生死锁应该如何解决?

MySQL 中的锁类型丰富多样,选择合适的锁类型需要根据具体的业务场景和并发需求。InnoDB 存储引擎支持多种锁机制,包括行锁、间隙锁、临键锁等,能够满足大多数高并发场景的需求。二阶段提交是分布式事务中的一种重要协议,用于确保多个参与者对事务的提交达成一致。它的实现相对简单,但存在性能开销和单点故障等问题。在 MySQL 中,通过 XA 事务支持二阶段提交,用于管理分布式事务。

2025-02-26 18:09:23 847

原创 MySQL 中的事务隔离级别有哪些?MySQL 默认的事务隔离级别是什么?为什么选择这个级别?数据库的脏读、不可重复读和幻读分别是什么?

MySQL 默认的事务隔离级别是可重复读,因为它在数据一致性和并发性能之间提供了合理的折中,避免了脏读和不可重复读问题,适用于大多数需要保证数据一致性的场景。通过 MVCC 和 ReadView 机制,可重复读隔离级别实现了高效的数据一致性和并发性能。脏读是读取到未提交的数据。不可重复读是读取到已提交的更新或删除数据,导致两次读取结果不同。幻读是读取到已提交的插入或删除数据,导致记录集合前后不一致。

2025-02-25 18:16:29 921

原创 MySQL 是如何实现事务的?MySQL 中的 MVCC 是什么?MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?

通过以上机制,MySQL 的存储引擎(如 InnoDB)能够提供可靠的事务处理,满足 ACID 特性,确保数据的完整性和一致性。

2025-02-24 13:19:18 809

原创 请详细描述 MySQL 的 B+ 树中查询数据的全过程 MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?MySQL 中 varchar 和 char 有什么

使用场景如果存储的字符串长度固定,推荐使用CHAR。如果存储的字符串长度变化较大,推荐使用VARCHAR。性能针对特定的存储引擎和使用场景,CHAR和VARCHAR的性能表现可能不同。在需要固定长度的快速随机访问时,CHAR可能更优;而在需要节省存储空间时,VARCHAR是更好的选择。

2025-02-23 16:52:16 703

原创 MySQL 中的索引数量是否越多越好?为什么?如何使用 MySQL 的 EXPLAIN 语句进行查询分析?MySQL 中如何进行 SQL 调优?

因此,索引并不是越多越好,应该根据实际的查询需求和表的特性来合理设计索引。通常建议只对频繁查询且能显著提升查询性能的字段创建索引,避免盲目增加无用的索引。

2025-02-22 15:36:28 898

原创 MySQL 中的回表是什么?MySQL 中使用索引一定有效吗?如何排查索引效果?在 MySQL 中建索引时需要注意哪些事项?

当查询语句使用非主键索引进行查找时,非主键索引的叶子节点只包含主键值(或者唯一标识行的数据)和一些其他信息,并不包含完整的行数据。为了获取完整的行数据,MySQL 需要根据非主键索引中的主键值再去主键索引中查找对应的行数据,这个过程就叫做回表。

2025-02-21 14:34:38 952

原创 为什么 MySQL 选择使用 B+ 树作为索引结构?MySQL 索引的最左前缀匹配原则是什么?MySQL 三层 B+ 树能存多少数据?

B+ 树通过多叉结构减少树高有序链表优化范围查询稳定查询路径和适配磁盘 I/O 特性,成为数据库索引的理想选择。虽然某些场景下其他数据结构(如哈希表)可能有更好的局部性能,但 B+ 树在综合场景中表现最优。最左优先原则当使用联合索引时,查询条件必须满足最左前缀的条件才能使用索引。即查询条件的列顺序必须从联合索引的最左列开始,并且连续使用。例如,联合索引(a, b, c)可以支持以下查询模式:查询 a 的条件,如。查询 a 和 b 的条件,如。查询 a 的范围条件并结合后面的列,如。

2025-02-20 16:05:02 882

原创 MySQL 的存储引擎有哪些?它们之间有什么区别? MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别? MySQL 的索引类型有哪些?

节选自面试鸭 作者:木子金又二丨。

2025-02-19 18:35:10 731

原创 openguass数据库描述指令集合(等保)

A:当前存在 root、omm、data_analysis、dbmind_monitor、rmtdisplay用户,用于不同的权限划分。A:当前来说,没有限制。listen_addresses = ‘*’,待完成试运行之后,转入正式运行时,根据真实的终端地址来限制。1、查看数据库是否配置了密码复杂度,密码最小使用长度是否大于8位,密码复杂度的要求是否包含3类不同字符。10、数据库是否存在三权账户(数据库管理员、安全管理员和审计管理员账户)。12、当前数据库是否冗余配置(多台服务器实现高可用)。

2023-10-13 10:58:26 915

原创 openGauss

openGauss是一款全面友好开放,携手伙伴共同打造的。openGauss提供面向多核架构的极致性能、全链路的业务、数据安全、基于和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。

2023-10-13 10:51:10 366

原创 Redis微服务架构

以上我们针对的都是。

2023-10-13 10:46:24 435

原创 RocketMq常用命令

查看帮助:在 mqadmin 下可以查看有哪些命令。查看指定消费组下的所有topic数据堆积情况。查看topic信息列表详情统计。

2023-10-13 10:43:15 940

原创 SpringMvc源码分析-请求流程(一)

1.实现了Controller接口的Bean对象:这是Spring MVC最初的设计,每个请求对应一个Controller对象,每个Controller只处理一个单一的动作或者请求。3.添加了@RequestMapping注解的方法:只需要在任意一个Bean的方法上添加@RequestMapping注解,Spring MVC就会自动将这个方法映射到一个URL,然后当这个URL被请求时,Spring MVC会调用这个方法来处理请求。视图解析器进行解析,得到具体的视图对象,并进行视图渲染,最后响应给用户。

2023-10-13 10:41:38 436

原创 RocketMQ

RocketMQ是一款开源的分布式消息中间件,它可以在大规模分布式系统中进行可靠地、高性能的消息传递,并且提供了可靠的消息顺序传递和事务消息功能。

2023-08-14 17:49:32 102

原创 MD5加密方实现登录加密

实现MD5加密登录的相关信息,以跟自由的方式进行加密,以防止网络数据抓取和数据库泄露的数据安全手段。

2023-02-07 18:30:18 600

原创 关于 Caused by java.lang.ClassNotFoundException深坑----idea导入外部依赖

关于 Caused by java.lang.ClassNotFoundException深坑----idea导入外部依赖

2022-10-12 18:01:57 634

原创 设计模式之禅-二《上卷》

建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the sameconstruction process can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)● Product产品类。

2022-09-26 11:24:50 234

原创 java(若依)防止表单重复提交

三、继承RepeatSubmitInterceptor抽象方法实现,重写isRepeatSubmit抽象方法,实现具体的校验规则。二、实现HandlerInterceptor,创建RepeatSubmitInterceptor抽象方法。四、构建可重复读取inputStream的request。一、创建 RepeatSubmit 自定义注解。五、把已写好的拦截器添加到mvc的拦截器组中。

2022-09-16 16:58:49 4289

原创 全局异常管理

在编写项目的过程中,我们会在控制台得到特殊异常,这些异常需要做捕获并做一些特殊的处理响应给前端。为了更好的区分和管理异常,需要做全局异常管理。2、创建全局异常处理,在前面发现控制台爆出的是 @BindException。所以这里针对 @BindException所爆出的异常进行特殊处理。本片文章针对接着上一篇的自定义注解()所产生的异常,进行进一步的处理。

2022-09-05 16:11:37 223

原创 手机校验——Validation组件的自定义注解,使用定义注解进行手机校验。

手机校验---自定义注解

2022-09-05 13:47:04 2399

原创 JAVA八股文面试题(卷三)

JAVA八股文面试题(卷三)注:素材来自与https://www.bilibili.com/video/BV1LS4y1V7MX?p=70什么是多线程中的上下文切换?1、定义CPU处理器给每个线程分配CPU时间片(Time Slice),线程在分配获得的时间片内执行任务。当一个线程被暂停或剥夺CPU的使用权,另外的线程开始或者继续运行的这个过程就叫做上下文切换(Context Switch)具体来说,一个线程被剥夺处理器的使用权而被暂停运行,就是“切出”;一个线程被选中占用处理器开始或者继

2022-05-24 16:57:11 293

原创 JAVA八股文面试题(卷二)

JAVA八股文面试题(卷二)

2022-05-20 11:26:58 1961

原创 JAVA八股文面试题(卷一)

JAVA八股文面试题

2022-05-18 16:48:43 1857

Redis上课笔记.md

Redis上课笔记.md

2021-05-23

mysql-connector-java-5.1.7.rar

由于外网不好下载在这里给大家免费

2021-05-07

空空如也

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

TA关注的人

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