自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(272)
  • 资源 (3)
  • 收藏
  • 关注

原创 mac sublime text 垂直编辑

sublime垂直编辑

2022-08-25 17:18:32 1487 1

原创 05-线程安全和锁优化

文章目录线程安全和锁优化一、线程安全二、Java实现线程安全的方法2.1 互斥同步2.2 非阻塞同步2.3 无同步方案三、对象头四、锁优化4.1 自旋锁和自适应自旋锁4.2 锁消除和锁粗化4.3 轻量级锁4.4 偏向锁4.5 对比五、锁升级六、代码验证6.1 重偏向6.1.1 代码6.1.2 小结6.2 批量撤销七、参考线程安全和锁优化一、线程安全多线程访问一个对象时,如果不需要考虑多线程...

2020-01-16 12:17:42 415

原创 06-GC参数汇总

文章目录JVM参数一、参数说明二、内存相关三、GC收集器相关CMS/G1通用参数CMS重要参数G1 重要参数四、日志输出相关五、其他5.1 类加载相关5.2 TLAB相关5.3 其他5.4 小问题参考JVM参数一、参数说明java启动参数共分为三类第一类是标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容;第二类是非标准参数(-X):默认jvm实现这些参数的功能,但...

2020-01-07 15:57:30 459

原创 04-Java内存模型与线程

文章目录Java内存模型与线程一、JMM定义二、JMM细节2.1 主存与工作内存2.2 内存交互2.3 volatile2.4 先行发生原则Java与线程Java内存模型与线程一、JMM定义JMM是Java 虚拟机规范中定义的一种标准,其目的是为了屏蔽各种硬件和操作系统的差异(不同硬件平台的差异),让Java程序在各种平台下都能达到一致的访问效果;定义JMM并不容易,一方面需要足够严谨...

2020-01-04 14:53:18 202

原创 16-Java多线程、volatile关键字

文章目录volatile关键字一、作用2.1 可见性2.2 有序性二、线程不安全三、volatile应用场景四、底层原理4.1 关于指令重排4.2 内存屏障参考volatile关键字能够被多个线程访问到的变量称之为共享变量,Java中共享变量大多存在于堆中。JMM规定所有的变量都存在主存中,但每个线程都有自己的工作内存,线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作,...

2020-01-03 14:32:47 174

原创 18-MySql主从(原理)

文章目录MySql主从(原理)一、目的二、原理2.1 主从同步线程2.2 bin-log主从同步的三种形式2.3 主从架构2.4 循环复制2.5 思考三、问题和挑战3.1 主从同步延迟?1.3.1 延迟原因1.3.2 应对方法3.2 主从同步数据安全?四、并行复制4.1、并行复制策略4.1.1 按表分发4.1.2 按行分发4.2、MySql并行复制4.2.1 5.6版本4.2.2 5.7版本参考...

2020-01-02 10:57:56 249

原创 17-mysql主从(搭建)

文章目录MySql主从(搭建)一、搭建mysql主从1.1 拉取镜像1.2 配置master1.3 配置Slave1.4 验证二、Slave只读2.1 设置只读的考虑2.2 readOnly设置参考MySql主从(搭建)一、搭建mysql主从1.1 拉取镜像docker pull mysql:5.7docker run -p 3339:3306 --name my-master -e M...

2019-12-31 17:51:23 155

原创 10-MySql 日志-binlog

文章目录MySql日志-binlog一、作用和场景二、配置2.1 查看binlog是否开启2.2 查看binlog位置2.3 查看binlog模式2.4 binlog配置文件2.5 binlog刷盘配置2.6 binlog文件和命令2.7 binlog其他配置三、binlog操作3.1 查看所有binlog日志3.2 查看最新binlog日志3.3 刷新binlog3.4 清空binlog3.5 ...

2019-12-24 15:25:13 356

原创 枚举

文章目录枚举一、枚举二、本质2.1 反编译2.2 特点2.3 values()方法三、Enum3.1 属性3.2 构造方法3.3 其他方法四、应用4.1 自定义构造方法4.2 抽象方法4.3 实现接口4.4 枚举和单例参考枚举枚举是JDK5 引入的一个特性,他是一种特殊的数据类型,它特殊在即是一种类型,又有一些特殊之处,这些特殊造就了枚举的特性,比如简单,安全等。一、枚举在没有枚举之...

2019-12-18 10:43:09 195

原创 03-HashMap

文章目录HashMap1、HashMap的主要参数都有哪些?2、HashMap 的数据结构?3、hash的计算规则?4、hash碰撞和解决方法?5、关于扩容5.1 为什么扩容是以2的幂次?5.2 HashMap的扩容时机,什么时候会进行rehash?6、存取6.1 HashMap put的过程6.2 HashMap的get过程7、HashMap初始化传入的容量参数的值就是HashMap实际分配的空...

2019-12-17 21:01:21 187

原创 08-MySql 慢查询分析-工具篇

文章目录MySql 慢查询分析一、慢查询配置1.1 查询1.2 修改二、慢查询分析2.1 日志内容三、工具3.1 mysqldumpslow3.1.1 使用3.1.2 示例3.1.3 缺点3.2 pt_query_digest3.3 mysqlsla参考MySql 慢查询分析一、慢查询配置慢查询默认关闭,相关配置如下:配置说明默认值slow_query_log记...

2019-12-17 16:23:19 171

原创 19-NioEventLoop IO事件处理

文章目录NioEventLoop IO事件处理一、NioEventLoop#run二、功能方法2.1 hasTasks2.2 select(booolean oldWakenUp)2.3 processSelectedKeys2.3.1 processSelectedKeys2.3.2 processSelectedKeysOptimized2.3.3 processSelectedKey(Sel...

2019-12-17 13:55:11 470

原创 18-NioEventLoop实例化过程

文章目录NioEventLoop实例化过程一、构造方法1.1 NioEventLoop1.2 SingleThreadEventLoop1.3 SingleThreadEventExecutor1.4 AbstractEventExecutor二、EventLoop 与 Channel 的关联2.1 Channel注册到EventLoop2.2 EventLoopGroup注册Channel三、E...

2019-12-16 20:33:09 208

原创 17-EventLoop整体

文章目录EventLoop整体一、上层类和接口1.1 EventExecutor1.2 OrderedEventExecutor1.3 AbstractEventExecutor1.4 AbstractScheduledEventExecutor1.5 SingleThreadEventExecutor二、EventLoop2.1 EventLoop2.2 SingleThreadEventLoo...

2019-12-16 15:57:23 257

原创 16-EventLoopGroup整体

文章目录EventLoopGroup整体一、EventLoopGroup和Reactor线程模型1.1 Reactor 线程模型1.2 EventLoopGroup对模型实现二、上层类和接口2.1 EventExecutorGroup2.2 AbstractEventExecutorGroup2.3 MultithreadEventExecutorGroup2.3.1 概览2.3.2 构造方法2....

2019-12-12 19:12:59 521

原创 15-ChannelInitializer

文章目录ChannelInitializer一、继承关系二、源码2.1 注释2.2 源码分析2.3 handlerAdded和channelRegistered三、使用示例ChannelInitializerChannelInitializer 是一种特殊的 ChannelHandler,它也是一种 ChannelInboundHandler,它提供了在通道注册到 EventLoop 后初...

2019-12-10 15:29:58 1635

原创 12-ChannelHandler实现

文章目录ChannelHandler实现一、SimpleChannelInboundHandler二、MessageToByteEncoder三、LoggingHandler四、小结ChannelHandler实现前面一篇文章介绍了ChannelHandler接口的继承体系,本文选择几个典型的ChannelHandler看一看源码下面是继承体系图,选取的的最底部的实现类,有些是抽象类...

2019-12-09 20:23:41 210

原创 13-ByteBuf

文章目录ByteBuf一、ByteBuf1.1 类注释1.2 方法1.2.1 属性相关1.2.2 读写数据1.2.3 查找方法1.2.4 释放操作1.2.5 拷贝操作1.2.6 其他二、ByteBuf和ByteBuffer对比ByteBufByteBuf 是 Netty 中数据容器,它高效的实现了底层数据通信过程中所需要的字节序列的相关操作。ByteBuf 自身的源码就非常多,而且还...

2019-12-09 17:19:58 314

原创 14-ReferenceCounted

文章目录ReferenceCounted一、接口定义1.1 注释1.2 方法二、ReferenceCounted的实现2.1 ByteBuf2.2 AbstractReferenceCountedByteBuf2.2.1 AtomicIntegerFieldUpdater2.2.2 deallocate方法三、deallocate的实现3.1 PooledByteBuf3.2 Unpooled...

2019-12-09 14:57:35 515

原创 11- 怎么给字符串字段加索引?

文章目录怎么给字符串字段加索引?一、归纳1.1 字符串字段创建索引方式?1.2 各种方式可能的缺点?二、原文前缀索引对覆盖索引的影响其他方式小结上期问题时间怎么给字符串字段加索引?MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1 字符串字段创建索引方式?直接创建索引创建前缀索引...

2019-12-06 21:03:40 262

原创 10-MySQL为什么有时候会选错索引?

文章目录MySQL为什么有时候会选错索引?一、归纳1.1 优化器的目的1.2 优化器的选择逻辑1.3 优化器采样逻辑1.4 修正1.5 索引选择异常二、原文优化器的逻辑索引选择异常和处理小结上期问题时间MySQL为什么有时候会选错索引?MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1 ...

2019-12-06 19:59:13 235

原创 09-普通索引和唯一索引,应该怎么选择?

文章目录普通索引和唯一索引,应该怎么选择?一、归纳1.1 change buffer机制1.2 普通索引和唯一索引1.3 redo log 和 change buffer二、原文查询过程更新过程change buffer 的使用场景索引选择和实践change buffer 和 redo log小结补充:上期问题时间普通索引和唯一索引,应该怎么选择?MySql实战笔记是针对极客时间:《MySq...

2019-12-06 16:27:22 421

原创 08- 事务到底是隔离的还是不隔离的?

文章目录事务到底是隔离的还是不隔离的?一、归纳1.1 事物与视图1.2 开启事物1.3 MVCC下快照工作机制1.4 视图和undoLog二、原文“快照”在 MVCC 里是怎么工作的?更新逻辑小结上期问题时间事务到底是隔离的还是不隔离的?MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1...

2019-12-06 14:45:53 210 1

原创 07- 行锁功过

文章目录行锁功过(怎么减少行锁对性能的影响?)一、归纳1.1 行锁和引擎1.2 两阶段锁1.3 死锁和处理1.4 解决热点行更新导致的性能问题二、原文从两阶段锁说起死锁和死锁检测小结上期问题时间行锁功过(怎么减少行锁对性能的影响?)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1 行锁...

2019-12-06 12:38:21 172

原创 06-全局锁和表锁

文章目录全局锁和表(给表加个字段怎么有这么多阻碍?)一、归纳1.1 全局锁1.2 表级锁1.3 安全的修改表二、原文全局锁表级锁小结上期问题时间全局锁和表(给表加个字段怎么有这么多阻碍?)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1 全局锁命令:Flush tables wit...

2019-12-06 11:27:17 174 1

原创 05-深入浅出索引(下)

文章目录深入浅出索引(下)一、原文覆盖索引最左前缀原则索引下推小结上期问题时间二、归纳2.1 索引覆盖2.2 最左匹配2.2 索引下推2.3 关于重建索引2.4 关于联合索引深入浅出索引(下)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、原文在上一篇文章中,我和你介绍了 InnoDB 索引的数...

2019-12-06 10:21:13 184

原创 04-深入浅出索引(上)

文章目录深入浅出索引(上)一、原文索引的常见模型InnoDB 的索引模型索引维护小结上期问题时间二、归纳2.1 索引数据结构类型2.2 索引类型2.3 索引检索2.4 数据页和主键2.5 避免长事务深入浅出索引(上)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、原文提到数据库索引,我想你并不陌...

2019-12-06 09:36:23 156

原创 03-事物隔离

文章目录事物隔离(为什么你改了我还看不见?)一、原文隔离性与隔离级别事务隔离的实现事务的启动方式小结上期问题时间二、归纳2.1 事物隔离级别2.2 事物隔离级别实现2.3 长事务2.4 避免长事物2.5 定时备份事物隔离(为什么你改了我还看不见?)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、原...

2019-12-06 09:36:09 132

原创 01-基础架构

文章目录基础架构(一条Sql语句是如何查询的?)一、原文连接器查询缓存分析器优化器执行器小结二、归纳2.1 分层架构2.2 组件功能2.3 MySql Server层和存储引擎层2.4 问题答案基础架构(一条Sql语句是如何查询的?)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、原文你好,我是...

2019-12-06 09:35:49 271

原创 02-系统日志

文章目录系统日志(一条SQL更新语句是如何执行的?)一、原文重要的日志模块:redo log重要的日志模块:binlog两阶段提交小结二、归纳2.1 redoLog和binLog的作用和区别?2.2 MySql事物的二次提交2.3 日志刷盘参数系统日志(一条SQL更新语句是如何执行的?)MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的...

2019-12-06 09:35:41 164

原创 06-NIO Selector

文章目录NIO Selector一、Selector1.1 Selector和Channel,SelectionKey1.2 源码注释二、源码解读2.1 open2.2 select2.3 keys2.4 wakeup和 close2.5 isOpen()三、SelectorProvider3.1 SelectorProvider.provider()3.2 openSelector四、实现类Ab...

2019-11-30 12:37:59 178

原创 08-NIO SelectionKey

文章目录NIO SelectionKey一、SelectionKey二、源码解读2.1 获取Channel和Selector2.2 SelectionKey事件2.3 attachment属性2.4 关闭SelectionKey三、实现类3.1 AbstractSelectionKey3.2 SelectionKeyImpl四、示例五、参考NIO SelectionKey在前面的NIO部分尤...

2019-11-29 20:18:30 246

原创 05-NIO Buffer

文章目录NIO Buffer一、Buffer二、主要属性三、主要方法3.1 创建Buffer3.2 读写Buffer、flip、rewind3.4 其他方法3.4.1 mark和reset3.4.2 clear和remaining四、ByteBuffer4.1 构造方法4.2 方法示例五、Buffer到Netty ByteBufNIO Buffer一、BufferNIO 中,对于连接数据的...

2019-11-28 17:04:10 130

原创 04-NIO Channel

文章目录NIO Channel一、Channel和流二、Channel的主要实现类三、从Socket到Channel3.1 Socket和ServerSocket3.2 SocketChannel和ServerSocketChannel3.3 联系四、Netty Channel参考NIO ChannelChannel (java.nio.channels.Channel) 是 NIO 的三...

2019-11-27 20:22:52 214

原创 03-BIO、NIO到Netty

文章目录BIO、NIO到Netty一、BIO1.1 代码1.1.1 客户端1.1.2 服务端代码1.2 BIO分析二、NIO2.1 NIO核心三剑客2.2 代码2.3 NIO小结三、BIO和NIO3.1 对比3.2 关于流和buffer3.3 关于阻塞四、Netty4.1 了解Netty4.2 Netty 5五、NIO到Netty5.1 更多5.2 更好5.3 组件区别六、参考BIO、NIO到N...

2019-11-27 14:45:55 241

原创 Redis使用Lua脚本的两个小问题

文章目录Redis使用Lua脚本的两个小问题一、整型转换1.1 场景1.2 问题1.3 修复二、获取Set元素2.1 场景2.2 问题2.3 修复Redis使用Lua脚本的两个小问题最近在项目中使用redisTemplate 执行Lua 脚本发现两个比较坑的地方,发现之后其实也很简单,过程很容易让人抓狂,一、整型转换1.1 场景逻辑是通过一段 Lua 脚本去给redis中的一个值加...

2019-11-19 20:41:25 4670 3

原创 07-ModeAndView和View

文章目录ModeAndView一、ModeAndView和DispatcherServlet二、代码2.1 关键属性2.2 构造方法2.3 读取方法2.4 赋值方法2.5 ModelMap三、ViewModeAndView一、ModeAndView和DispatcherServletModeAndView 是DispatcherServlet中请求处理器执行后的返回结果(HandlerAd...

2019-11-15 19:56:28 486

原创 06-HandlerAdapter

文章目录HandlerAdapter一、HandlerAdapter1.1 HandlerAdapter设计思想?1.2 接口定义1.3 初始化 HandlerAdapter1.4 获取 HandlerAdapter二、HandlerAdapter 继承体系2.1 AbstractHandlerMethodAdapter2.2 SimpleControllerHandlerAdapter2.3 H...

2019-11-15 19:12:46 297

原创 25-Mybatis和SpringBoot集成原理

文章目录Mybatis和SpringBoot的集成一、MyBatis和SpringBoot二、MybatisAutoConfiguration2.1 属性2.2 配置SqlSessionFactory2.3 配置SqlSessionTemplate2.4 配置MapperFactoryBean三、MybatisProperties四、小结Mybatis和SpringBoot的集成前面介绍了M...

2019-11-09 16:33:52 799

原创 24-Mybatis和Spring集成原理

文章目录Mybatis和Spring集成原理一、代码差异1.1 MyBatis1.2 MyBatis和Spring二、主要类2.1 SqlSessionFactoryBean2.1.1 核心属性2.1.2 buildSqlSessionFactory2.1.3 创建时机2.2 MapperFactoryBean2.3 MapperScannerConfigurer2.4 @MapperScan三、...

2019-11-09 14:05:12 491

kafkademo代码

kafka消费者生产者代码,java

2018-08-30

Mybatis逆向工程jar包

Mybatis逆向工程以来的jar包,四个jar包,导入工程即可

2017-12-12

JavaSpringMvc的jar包

SpringMvc的jar包,最小jar包集合,搭建入门的SpringMvc框架。

2017-12-03

空空如也

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

TA关注的人

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