自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Mybatis源码框架

总体框架包含内容基础支持层核心处理层接口层包含内容基础支持层、核心处理层、接口层基础支持层基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑。反射模块,reflection包,封装原生反射包,提供简洁API供上层调用类型模块 type包, 为简化配置文件提供别名机制;实现JDBC类型于Java类型之间的转换,SQL绑定是惨以及映射查询结果集...

2019-06-21 20:32:50 172

原创 netty笔记

字符串大小写: 针对单个字母和字符串都有区别判断是否是2的倍数 (val & -val) == valepoll 100% CPU Bugmpscproducer放入元素时,通过cas,无锁放入consumer 不用cas判断size()时,需要判断前后操作获取值是否相同获得使用的 Selector 对象,不需要每次访问使用 volatile 修饰的 selector 属...

2019-02-23 21:49:27 214

原创 netty核心组件

Bootstrap & ServerBootstrap这 2 个类都继承了AbstractBootstrap,因此它们有很多相同的方法和职责。它们都是启动器,能够帮助 Netty 使用者更加方便地组装和配置 Netty ,也可以更方便地启动 Netty 应用程序。可以通过它来连接到一个主机和端口上,也可以通过它来绑定到一个本地的端口上。Bootstrap 用于启动一个 Netty TC...

2018-12-12 21:56:04 122

原创 Redis中的事务

Redis也支持事务(如果这种真的能称之为是事务的话),类似于begin、commit、rollback,Redis中用multi、exec和discard来表示事务的开始,执行,和抛弃。Redis事务怎么实现的当服务器收到multi指令后,会把后续的指令放入到缓存队列中;收到exec之后,会按顺序执行 enqueue的指令。所有enqueue的指令,服务器端会返回“QUEUED”,用于表示服...

2018-10-08 21:09:57 97

原创 java并发底层机制

volatile保证了内存可见性:当一个线程修改变量时,另一个线程能读到这个修改值。比synchronized的使用和执行成本更低,不会引起上下文切换和调度。通过Lock前缀指令实现:将当前处理器缓存行的数据写回到系统内存写回内存操作会使其他CPU里缓存该内存地址的数据失效(修改对应变量的内存地址,通过总线嗅探)synchronized实现对象头中的mark word锁升级无锁...

2018-10-02 10:38:13 142 1

原创 mysql记录锁

该文章在Innodb引擎下记录锁记录锁是锁住记录,锁住索引记录,而不是真正的数据记录锁是非主键索引,会在索引记录上加锁后,在去主键索引上加锁表上没有索引,会在隐藏的主键索引上加锁如果要锁的列没有索引,进行全表记录加锁间隙锁不是针对某一记录加锁,而是锁定一个范围,也被称为gap锁,不会阻塞其他gap锁,但会阻塞插入间隙锁,这也是防止幻读的关键(RR隔离,Innodb默认隔离)ne...

2018-09-29 10:55:50 3996

转载 Redis 线程模型初探

Redis单线程众所周知,Redis执行任务为单线程,简化了编程模型,使用者也不用担心并发读写导致的可能的错误。为什么一般为了解决高吞吐、多并发的设计任务,都会基于多线程(Java中的线程池等方式),而Redis底层采用epoll方式对io进行复用,且Redis中操作主要为内存操作,不需要等待IO等因素(这些因素也是引入多线程的原因,等待IO、数据库等操作),也能避免多线程上下文切换带来的性...

2018-09-28 16:53:19 708

转载 Redis基础类型

基本类型字符串 string通过key获取值,一般将对象序列化成字符串后存储。redis中的字符串是动态字符串,可修改,类似于java中的ArrayList数据结构,采用预分配冗余空间的方式来减少频繁扩容行为。当字符串长度小于1M时,加倍现有空间(与java中容器扩容类似)。如果超过1M,扩容一次只会多扩1M空间,最大512M列表ListRedis中的List相当于Java中的双向链表...

2018-09-22 19:02:22 192

转载 反射为什么慢

反射为什么慢反射为什么慢反射为什么慢反射是什么为啥慢In the end先声明,主要为学习相关笔记,很多资料参考他人资料,如有侵权,请联系我,[email protected]反射是什么反射,这套API在java中属于过了入门的,大部分人都听说过、用过的除了典型api而言,实际应用的并不多,首先就我的了解(参考很多资料),说说反射能干什么。反射运行正在运行的程序检测、甚至是修改程序的动...

2018-09-21 11:19:27 6016

空空如也

空空如也

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

TA关注的人

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