后端

排序算法

排序算法 概念 排序稳定性 相同关键字排序前后相对顺序 插入排序 直接插入 逐步将无序区的数据插入有序区 顺序比较得出插入的位置 时间复杂度n^2,空间复杂度1,稳定 折半插入 折半查找得出插入位置 时间复杂度n^2,空间复杂度1,稳定 希尔排序 分组进行插入排序 平均时间复杂度n^1.3,空间复杂度1,不稳定 交换排序(全局有序) 冒泡排序 两两比较,交换,

Java 线程间通信

1. 线程之间如何通信 共享内存(隐式通信) 消息传递(显式通信 wait / notify synchronized) 1.2 阻塞 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用 notify 或 notifyAll 时唤醒,但唤醒后并不意味着立刻获得

2025年03月12日 Go生态洞察: Go 1.24 中新增os.Root 防遍历文件 API

2025年03月12日 Go生态洞察: Go 1.24 中新增os.Root 防遍历文件 API 摘要 ✨大家好,我是猫头虎。本篇文章将带你深入探索 Go 1.24 中新增的 os.Root API,全面解析路径遍历(Path Traversal)攻击的原理、传统防御方式的局限,以及 os.Root 提供的跨平台

详解RabbitMQ工作模式之路由模式

目录路由模式概念介绍工作原理特点应用场景实现步骤代码案例引入依赖常量类编写生产者代码编写消费者1代码编写消费者2代码运行代码路由模式概念介绍路由模式是发布订阅模式的变种, 在发布订阅基础上, 增加路由key。 发布订阅模式是⽆条件的将所有消息分发给所有消费者, 路由模式是Exchange根据RoutingKey的规则,将数据筛选后发给对应的消费者队列。工作原理 1.生产者发送消息&#xff1a

说说HashMap原理吧?

HashMap主要是由数组和链表组成,它不是线程安全的。 核心点就是put插入数据的过程,get查询数据以及扩容的方式。JDK1.7和1.8的主要区别在于头插和尾插方式的修改,头插容易导致HashMap链表死循环,并且1.8后加入红黑树对性能有提升。 put插入数据流程 往map插入元素的时候,首先通过key 进行hash算法,然后与数组长度-1进行与运算((n - 1) & hash),

MySQL系列之数据类型(Numeric)

导览 前言 一、数值类型综述 二、数值类型详解 1. NUMERIC 1.1 UNSIGNED或SIGNED 1.2 数据类型划分 2. Integer类型取值和存储要求 3. Fixed-Point类型取值和存储要求 4. Floating-Point类型取值和存储要求 结语 精彩回放 前言MySQL系列最近三篇均关注了和我们日常工作或学习密切相关

MySQL快速入门——库的操作

MySQL快速入门——库的操作 1. 创建数据库 2. 创建数据库案例 3. 字符集和校验规则 3.1 查看字符集和校验规则 3.2 验证不同校验编码的影响 4. 操作数据库 4.1 查看数据库 4.2 修改数据库 4.3 数据库删除 4.4 备份和恢复 5. 查看连接情况 1. 创建数据库1. 语法:CREATE DATABASE [I

15. 类的关系——实现(接口)

15. 类的关系——实现(接口) 1、接口 1.1 接口的引入 Java语言中,类与类的继承只能是单继承。 试想一下,如果一个类中的所有方法都是抽象方法,子类继承后,需要重写所有方法,但是因为单继承,就不能去继承其他有实际方法的父类了。 为了解决这个弊端,Java语言中把一种特殊的抽象类定义成一个新的概念,接口,即interface 接口的本质就是一个类,不过是一个纯的抽象类,就是没有变量,没有具

【MySQL基础】MySQL复合查询全面解析:从基础到高级应用

MySQL学习:#前言: 前面学习了表的增删查改之后,今天我们重点来讲解一下有关查询的复杂问题——复合查询 目录一、复合查询基础概念1.1 什么是复合查询1.2 复合查询的主要类型二、示例数据库结构详解2.1 完整的表结构设计2.2 示例数据填充三、子查询深度解析3.1 子查询分类与语法3.1.1 按子查询位置分类3.1.2 按子查询相关性分类3.2