自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (链表:是否有环,快慢指针)141. 环形链表 和 环形链表 II

给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true。否则,返回 false。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。

2025-09-01 06:15:00 849

原创 (矩阵,螺旋)54. 螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

2025-08-31 06:15:00 209

原创 (数组)238. 除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

2025-08-30 14:16:44 200

原创 (哈希)128. 最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

2025-08-28 22:19:41 121

原创 (二叉树:DFS深度/BFS广度优先)102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]提示:树中节点数目在范围 [0, 2000] 内。

2025-08-25 21:58:49 424

原创 分布式消息队列技术(原理相关):Disruptor、RabbitMQ、Pulsar

Disruptor 是一个开源的高性能内存队列,诞生初衷是为了解决内存队列的性能和内存安全问题java中的这些队列要不就是加锁有界,要不就是无锁无界。而。

2025-08-21 18:00:00 29

原创 分布式消息队列技术(原理相关):RocketMQ

借鉴了 Kafka,已经成为 Apache 顶级项目。RocketMQ 是一个。它是一个的分布式的消息系统,由阿里巴巴团队开发。

2025-08-21 16:15:00 22

原创 分布式消息队列技术(原理相关):Kafka

编写一个具体的类实现org.apache.kafka.clients.producer.Partitioner接口只定义了两个方法:partition()和close(),通常你只需要实现最重要的partition方法。通过自己的实现类定义好了partition方法,同时设置partitioner.class参数为你自己实现类的Full Qualified Name,那么生产者程序就会按照你的代码逻辑对消息进行分区。

2025-08-21 14:45:00 33

原创 redis:redis Module 、 redis应用、Redis事件机制、redis Stream

Redis 从 4.0 版本开始,支持通过 Module 来扩展其功能以满足特殊的需求。每个人都可以基于 Redis 去定制化开发自己的 Module,比如实现搜索引擎功能、自定义分布式锁和分布式限流。被 Redis 官方推荐的 Module 有:Redis 除了做缓存,还有下面的使用分布式锁:通过 Redis 来做分布式锁是一种比较常见的方式。通常情况下,我们都是基于 Redisson 来实现分布式锁。关于 Redis 实现分布式锁的详细介绍,可以看我写的这篇文章:分布式锁详解。不建议使用 Redis 来

2025-08-21 13:15:00 25

原创 Redis优化: 性能问题 及 生产问题

一个 key 的访问次数比较多且明显多于其他 key 的话,那这个 key 就可以看作是 hotkey(热 Key)如在 Redis 实例的每秒处理请求达到 5000 次,而其中某个 key 的每秒访问量就高达 2000 次,那这个 key 就可以看作是 hotkey。某个热点数据访问量暴增,如重大的热搜事件、参与秒杀的商品。redis命令分为4步发送命令;命令排队;命令执行;返回结果。Redis 慢查询统计的是命令执行这一步骤的耗时慢查询命令即那些命令执行时间较长的命令。

2025-08-21 11:15:00 21

原创 JAVA多线程(4):线程安全、锁

线程安全和不安全是在多线程环境下。

2025-08-21 06:15:00 23

原创 可用性:常见主流注册中心选择

在使用pubSub时,我们需要去选择注册中心,这里便是去分析哪些适合作为注册中心。

2025-08-20 11:30:00 24

原创 java多线程(2):线程间的通讯,ThreadLocal、Exchanger、并发工具类

ThreadLocal类为线程提供局部变量,。ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储ThreadLocalMap(线程的一个属性)示例如下。

2025-08-20 06:15:00 23

原创 高并发:内容分发网络CDN

CDN 全称是 Content Delivery Network/Content Distribution Network,翻译过的意思是 内容分发网络内容:指的是静态资源比如图片、视频、文档、JS、CSS、HTML。分发网络比如北京的用户直接访问北京机房的数据。,分布在全国各地,主要全站加速全站加速不同云服务商叫法不同,腾讯云叫 ECDN、阿里云叫 DCDN内容分发网络。

2025-08-20 05:00:00 19

原创 高并发:负载均衡

负载均衡 指的是,以提高系统整体的负载均衡可以简单分为和这两种。

2025-08-20 02:15:00 19

原创 redis高可用:主从复制、哨兵模式

主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel模式应运而生Redis 哨兵模式(Sentinel)是实现高可用的核心方案,专为解决主从架构中的 自动故障转移 和 服务发现 问题而设计。对上述的判断到转移做一个总结工作的流程如下所示:每个sentinel以每秒钟一次的频率向它所知的master,slave以及其他sentinel实例发送一个 PING 命令;

2025-08-19 07:15:00 26

原创 设计模式基础概念(结构型模式):外观模式

外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。外观(Facade)模式又叫门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

2025-08-19 06:15:00 724

原创 java基础(5):javaWeb、tomcat

HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID,并以Cookie的形式发送到浏览器,浏览器在后续访问时总是附带此Cookie把 这种基于唯一ID识别用户身份的机制称为Session流程:每个用户第一次访问服务器后,会自动获得一个Session ID。

2025-08-18 06:15:00 33

原创 java基础(4):异常 、 IO 和 网络编程

通过 clone() 方法实现的深拷贝比较笨重,因为要将所有的引用类型都重写 clone() 方法,当嵌套的对象比较多的时候,就很麻烦。浅拷贝克隆的对象中,引用类型的字段指向的是同一个,当改变任何一个对象,另外一个对象也会随之改变,除去字符串的特殊性外。,它的具体实现会交给 HotSpot 虚拟机,那就意味着。,进而调用操作系统去完成对象的克隆工作。

2025-08-17 06:15:00 40

原创 java基础(3):常见的数据结构

为了减少哈希冲突发生的概率,当 HashMap 的数组长度达到一个临界值的时候,就会触发扩容,扩容后会将之前小数组中的元素转移到大数组中,这是一个相当耗时的操作。临界值 = 初始容量 * 加载因子如果负载因子过大,填充因子较多,那么哈希表中的元素就会越来越多地聚集在少数的桶中,这就导致了冲突的增加,这些冲突会导致查找、插入和删除操作的效率下降负载因子过小,那么桶的数量会很多,虽然可以减少冲突,但是在空间利用上面也会有浪费选择 0.75 是为了取得一个平衡点,即在时间和空间成本之间取得一个比较好的平衡点。

2025-08-16 06:15:00 58

原创 java基础(2):基本语法

局部变量:在方法体内声明的变量被称为局部变量,该变量只能在该方法内使用,类中的其他方法并不知道该变量成员变量:在类内部但在方法体外声明的变量称为成员变量或者实例变量,或者字段。之所以称为实例变量,是因为该变量只能通过类的实例(对象)来访问。

2025-08-15 06:15:00 35

原创 设计模式基础概念(行为模式):策略模式

策略模式是一种行为设计模式, 它能让你。主要目的是,并且可以随时相互替换。

2025-08-14 14:01:48 1018

原创 java基础(1): 定义、组成、API和SPI

java是一种面向对象的编程语言,一次编写,处处运行。

2025-08-14 13:08:26 44

原创 redis命令执行:线程模型 及 事务

Redis事务 ≠ 数据库事务,应将其视为 受限的批处理工具。严格避免在事务中操作大Key(如百万元素的Hash),否则可能引发主线程长时间阻塞。当需要 强原子性 和 复杂逻辑 时,Lua脚本是更可靠的选择。

2025-07-24 06:15:00 45

原创 redis概述:一条redis命令执行流程

流程如下。

2025-07-24 06:15:00 51

原创 Redis基本概念:为什么选择redis 及 redis为什么这么快

Redis 基于内存,内存的访问速度比磁盘快很多;Redis 基于 Reactor 模式设计开发了一套高效的事件处理模型,主要是单线程事件循环和 IO 多路复用(Redis 线程模式后面会详细介绍到);Redis 内置了多种优化过后的数据类型/结构实现,性能非常高;Redis通信协议实现简单且解析高效。高性能核心机制内存存储:Redis全程操作基于内存,读写速度可达微秒级,避免磁盘I/O瓶颈,支持每秒数十万次操作。

2025-07-23 06:15:00 423

原创 Redis存储引擎层:内存管理

重要性:Redis作为基于内存的高性能数据库,其内存管理直接关系到性能、稳定性和成本控制。

2025-07-22 06:15:00 48

原创 MYSQL总结:架构及相关使用、注意

当客户端发送连接请求时,MySQL服务器会在连接层接收请求,分配一个线程来处理该连接,随后进行身份验证,主要经过下面几个阶段呢客户端连接的建立与处理安全认证连接资源管理:线程管理:MySQL与客户端之间会采用半双工的通讯机制工作半双工:代表同一时刻内,单方要么只能发送数据,要么只能接受数据。

2025-07-21 06:15:00 47

原创 mysql问题

如果将ORDER BY子句添加到使用DISTINCT子句的语句中,则结果集将被排序,并且与使用GROUP BY子句的语句返回的结果集相同。例如,要从customers表中获取城市(city)和州(state)的唯一组合,可以使用以下查询:该语句将返回两个列中所有唯一的组合。如果列具有NULL值,并且对该列使用DISTINCT子句,MySQL将保留一个NULL值,并删除其它的NULL值,因为。DISTINCT子句与SELECT语句一起组合来消除结果集中的重复行。这样就能正确查询出第N页的记录集。

2025-07-20 06:15:00 754

原创 Mysql原理:服务层详情

查询缓存会,下次再查直接从内存中取。缓存的结果是的,所以一个 client 查询的缓存结果,另一个 client 也可以使用检查查询缓存时,MySQL Server 不会对 SQL 做任何处理,它精确的使用客户端传来的查询,仅缓存查询最终结果集太大的结果集不会被缓存 (< query_cache_limit)如果查询中缓存建立之后,MySQL 的查询缓存系统会跟踪查询中涉及的每张表,MySQL 缓存在。

2025-07-19 06:15:00 49

原创 Mysql基本概念:视图、约束、触发器、存储过程、游标

约束 是作用于数据库表中字段的规则,用于强制保证数据的完整性、一致性和有效性。其核心目标是通过限制非法数据输入来避免脏数据产生。SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)是对一系列 SQL 操作的批处理一组为了完成特定功能的 SQL 语句集,存储在数据库中。

2025-07-18 06:15:00 676

原创 Mysql基本概念:基本名词概念、ER图、数据库范式、主外键、mysql数据类型

MySQL 是开源关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储和管理场景关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2025-07-17 06:15:00 617

原创 mysql语句:DML、DDL、DQL、TCL、DCL

DDL (Data Definition Language)是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。·DDL 的主要功能是定义数据库对象。典型命令:CREATE(创建表)、ALTER(修改表结构)、DROP(删除表)、TRUNCATE(清空表)、RENAME(重命名表)

2025-07-16 06:15:00 789

原创 Tomcat基本概念

Server: 表示服务器,它提供了一种优雅的方式来启动和停止整个系统,不必单独启停连接器和容器;;Service内部还有各种支撑组件,

2025-07-15 06:15:00 581

原创 (双指针 | 牛顿迭代法)算法:计算‌根号2(√2)的n位有效位

计算‌根号2(√2)的n位有效位。

2025-07-14 06:15:00 655

原创 ES:基本概念、高可用和高性能保障

ElasticSearch是一个基于Lucene的搜索服务器。

2025-07-13 06:15:00 651

原创 XXLJOB:基本概念、基本原理、高性能高可用保障

调度多个执行器执行任务,,这样扩展执行器会增大DB的压力。但是如果没有大量的执行器的话和任务的情况,是不会造成数据库压力的。

2025-07-13 06:15:00 63

原创 Mybatis:原理及语法相关

看。

2025-07-12 06:15:00 395

原创 Maven知识点

的,是 Maven 的主要生命周期,

2025-07-11 06:15:00 682

原创 JVM:组成、内存模型、编译过程(JIT、AOT) 及 对象创建

Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。

2025-07-10 06:15:00 76

Java基础.xmind

java基础全部内容思维导图,首次整理

2021-08-28

Java笔试题目.xls

Java笔试题目.xls

2021-08-25

空空如也

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

TA关注的人

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