MySQL各种锁详细介绍 文章目录数据库锁1. 全局锁1. 全局锁的特点2. 全局锁的作用(全库逻辑备份)2. 表级锁1. 表锁1. 特点2. MDL元数据锁(metadata lock)1. 特点3. MDL锁的坑————给一个小表加字段1. 问题描述2. 解决方法3. online ddl(ddl:更改表结构)3. 行锁1. 行锁特性2. 两阶段锁协议4. 死锁1. 处理死锁策略2. 死锁检测(⭐)3. 典型案例(CP...
MySQL事物实战篇 文章目录MySQL事物实战篇1. 案例一2. 案例一结果分析3. 一致性视图原理3. 结论MySQL事物实战篇前面一篇博客已经了解了事物的一些特征,这里先来看如下的一个执行流程:1. 案例一先创建表:mysql> create table k ( -> id int primary key, -> k int(11) not null) ->...
Spring MVC 实用 tips 文章目录1. 如何制定数据类型转换器1. 日期类型的转换2. 自定义类型的转换1. 如何制定数据类型转换器使用 Spring MVC 框架进行 Web 开发时,前端页面传输的数据会自动封装到业务方法的参数中,这项工作是由 HandlerAdapter 组件完成的。1. 日期类型的转换我们知道 HTTP 表单中的所有请求参数都是 String 类型的,如果业务方法的参数是 String 或者...
探讨多线程数量的选择 文章目录1. 操作系统相关知识概述2. 使用多线程的目的3. 如何利用多线程提升CPU和IO的综合利用效率4. 理论上如何创建合适数量的线程1. I/O密集型2. CPU密集型5. 实际中线程数的分析1. 操作系统相关知识概述首先介绍一下操作系统中CPU和核心数的概念,在每个计算机中,单核或者多核都是针对单个CPU而言,即这个多核或者单核已经集成在CPU内部了,不要理解成每个CPU中只有一个核...
详解网络 网络文章目录网络1.网络名词解释1. IP地址和端口号2. 网络协议3. OSI七层参考模型1. 介绍2. 为什么OSI模型没得到广泛运用?3. 每层含义4. TCP/IP模型 (⭐)1. TCP/IP和OSI的联系与区别2. 每层含义3. TCP/IP模型的不足2. 数据传输流程1. 封装与解封装2. 具体流程⭐**1.应用层**1. HTTP协议1. 概述2. 版本更新特点最初版本HTTP1...
JavaScript的DOM和BOM编程 文章目录1. BOM编程(了解学习)1. 窗口对象:window2. 地址栏对象:location3. 历史记录对象:history4. 屏幕对象:screen2. DOM编程1. DOM编程入门2. 获取标签对象的三种方式1. document集合属性来获取标签对象2. 查询节点关系来获取标签对象3. 通过document对象的方法获取⭐(最常用)3. js的事件编程1. 事件基础案例2. 常用...
Future类之案例上手解析 文章目录1. 线程池submit方法解析(Future接口)2. FutureTask类1. API概览2. 简单使用栗子3. 实现最优版的烧水泡茶3. CompletableFuture类1. 异步化2. API概览3. 如何创建CompletableFuture对象之前在线程池的使用时,已经了解到当提交的任务需要获取返回值的时候,就需要用到submit这个方法进行任务的提交,而不是execu...
基于WebSocket的网页版聊天室项目 web聊天室项目本次项目的目录结构:dao层:对数据库的CURD操作;对应本次项目的用户模块的注册与登陆; (注册就是对数据库进行insert操作,登陆就是对数据库进行查询操作)service层:处理具体的业务;controller:(1)调用service获取数据返回给客户端;(2)从客户端获得数据调用业务处理;前端首界面:<!DOCTY...
Socket编程快速入门实战 文章目录1. Socket编程(网络编程)具体步骤1. ServerSocket1. 构造方法2. accept方法2. Socket1. 构造方法2. 常用方法2. 单线程的聊天室1. 代码2. 注意点1. Socket编程(网络编程)在Java中,Socket为java.net包下的一个类;中文翻译为套接字 ,套接字使用TCP提供了两台计算机之间的通信机制;客户端创建一个套接字,并尝试连...
JavaScript入门干货 文章目录1. Js概述1. js的引用方式JS的表单验证是重点!!⭐2. JS的由来(为什么需要JS)3. BOM和DOM编程1. BOM编程(了解即可)1. Js基础语法1. JS基础语法和数据类型2. js的类型转换函数3. js中的运算符4. js中的流程控制语句5. js中的for - in 语句2. js内置对象1. Date对象1. 网页时钟的实现2. String 对象(字符串对象)...
Java实现生产者与消费者模型 文章目录1. wait与notify方法2. 单线程版生产与消费者模型3. 完备的生产与消费者模型⭐1. wait与notify方法这两个方法实现线程间同步(通信);调用wait()和notify()方法都需要先获取到该对象的Monitor锁,即调用这两个方法必须包含在synchronized代码块中;每一个对象都有两个队列:黄色部分正是证明了: 在线程被notify方法唤醒后,并不会...
MySQL索引由浅入深 文章目录MySQL索引1. 索引的常见模型1. hash表索引2. 数组索引(有序数组)3. 二叉搜索树2. InnoDB的索引模型(B+树)⭐1. 索引分类2. 索引维护3. InnoDB索引使用规范4. 覆盖索引3. 索引的创建和删除MySQL索引索引是存放在模式(schema)中的一个数据库对象,虽然索引总是从属于数据表,但他也和数据表一样属于数据库对象;创建索引只有一个目的:加速...
线程池源码剖析——深入理解线程池 线程池源码剖析1. 手写一个简单线程池目前业界线程池的设计,普遍采用的都是生产者——消费者模型,线程的使用方是生产者,而线程池就是一个消费者;下面来设计一个简易的线程池MythreadPool,它的设计原理跟我们的ThreadPoolExecutor的设计思想是一致的;class MythreadPool { //用阻塞队列来保存任务 BlockingQueue<Ru...
线程池 线程池文章目录线程池0.线程池优点(⭐)1.线程池各种接口框架:2.线程池的执行原理3.如何创建一个线程池4.向线程池中提交任务1.用execute()方法提交,没有返回值2.用submit()方法提交任务,带有返回值5.线程池的关闭(⭐)优雅的关闭线程池(⭐)6.合理配置线程池7. 典型问题1.ThreadPoolExecutor 有哪些常用的方法?3.在 ThreadPool 中 submi...
适配器模式 文章目录1. 定义和结构图2. 栗子1. Java中的适配器2. 三种适配器模式(⭐)1. 类适配器模式2. 对象适配器3. 接口适配器3. 适配器的使用场景1. 定义和结构图适配器模式的定义:将一个类的接口转成客户期望的另外一个接口,适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作;适配器模式的结构图:如图所示:Client不能直接访问Adapter;A...
并发无锁工具类——原子类 文章目录1. 原子类的简单运用和原理1. 用原子类来解决简单的原子性问题2. 无锁方案的实现原理3. 案例具体细节解释4. Java中实现CAS的源码⭐2. 原子类概览1. 原子化的基本数据类型2. 原子化的对象引用类型1. 原子类的简单运用和原理首先回顾一下经典的累加器的案例:class My { public int count = 0; public void run(...
Java反射体系详解 文章目录1.获取一个类的对应的Class对象 (Class的C是大写)(1)调用Object提供的getClass方法(2)类名称 . class(3)调用Class类提供的静态方法:Class . forName(类的全名称)2.当我们拿到一个类的class对象后,可以做什么呢?1. 创建该类的新对象2. 取得包名、父类、父接口信息3. 取得构造方法、普通方法、普通属性(⭐)(1)取得所有参...
B树和B+树画图详解 B树系列文章目录B树系列1. B树1. B树特点2. B树的分裂过程:(插入)3. B树的删除操作2. B+树1. B树和B+树的相同点:2. B树和B+树的不同点3. B+树的插入操作3. B树和B+树总结⭐4. 搜索树总结B树和B+树的出现是为了查询数据时减少磁盘的IO次数,我们知道平衡二叉查找树是一种查询速度很快的数据结构。它的时间复杂度为(logN),但是它由于是一个二叉树,所以树的高...
LinkedList源码超详细解析 文章目录LinkedList源码分析1. 整体架构1. 类定义2. 底层结构3. 常用方法源码解析1. 构造方法2. 新增操作1. add()方法(尾插)2. addFirst()方法 (头插)3. 删除操作1. remove()方法 (也就是removeFirst方法)2. removeLast()方法3. remove(int index)方法(指定下标删除节点)⭐4. 节点查询1. get(...
MySQL之普通索引和唯一索引的选择 文章目录1. 场景2. 查询分析3. 更新分析1. change buffer(⭐)2. merge3. 更新下普索和唯一索引的具体效率区别4. change_buffer的具体使用场景(????????????)4. 总结5. change_buffer和redo_log(????)本篇博客要谈的,就是在保证业务的情况下,选择普通索引还是唯一索引!即你保证插入的数据不会重复,如果你插入的数据不保证不会重复,而你的...