- 博客(9)
- 收藏
- 关注
原创 Mybatis源码框架
总体框架包含内容基础支持层核心处理层接口层包含内容基础支持层、核心处理层、接口层基础支持层基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑。反射模块,reflection包,封装原生反射包,提供简洁API供上层调用类型模块 type包, 为简化配置文件提供别名机制;实现JDBC类型于Java类型之间的转换,SQL绑定是惨以及映射查询结果集...
2019-06-21 20:32:50
209
原创 netty笔记
字符串大小写: 针对单个字母和字符串都有区别判断是否是2的倍数 (val & -val) == valepoll 100% CPU Bugmpscproducer放入元素时,通过cas,无锁放入consumer 不用cas判断size()时,需要判断前后操作获取值是否相同获得使用的 Selector 对象,不需要每次访问使用 volatile 修饰的 selector 属...
2019-02-23 21:49:27
251
原创 netty核心组件
Bootstrap & ServerBootstrap这 2 个类都继承了AbstractBootstrap,因此它们有很多相同的方法和职责。它们都是启动器,能够帮助 Netty 使用者更加方便地组装和配置 Netty ,也可以更方便地启动 Netty 应用程序。可以通过它来连接到一个主机和端口上,也可以通过它来绑定到一个本地的端口上。Bootstrap 用于启动一个 Netty TC...
2018-12-12 21:56:04
164
原创 Redis中的事务
Redis也支持事务(如果这种真的能称之为是事务的话),类似于begin、commit、rollback,Redis中用multi、exec和discard来表示事务的开始,执行,和抛弃。Redis事务怎么实现的当服务器收到multi指令后,会把后续的指令放入到缓存队列中;收到exec之后,会按顺序执行 enqueue的指令。所有enqueue的指令,服务器端会返回“QUEUED”,用于表示服...
2018-10-08 21:09:57
139
原创 java并发底层机制
volatile保证了内存可见性:当一个线程修改变量时,另一个线程能读到这个修改值。比synchronized的使用和执行成本更低,不会引起上下文切换和调度。通过Lock前缀指令实现:将当前处理器缓存行的数据写回到系统内存写回内存操作会使其他CPU里缓存该内存地址的数据失效(修改对应变量的内存地址,通过总线嗅探)synchronized实现对象头中的mark word锁升级无锁...
2018-10-02 10:38:13
178
原创 mysql记录锁
该文章在Innodb引擎下记录锁记录锁是锁住记录,锁住索引记录,而不是真正的数据记录锁是非主键索引,会在索引记录上加锁后,在去主键索引上加锁表上没有索引,会在隐藏的主键索引上加锁如果要锁的列没有索引,进行全表记录加锁间隙锁不是针对某一记录加锁,而是锁定一个范围,也被称为gap锁,不会阻塞其他gap锁,但会阻塞插入间隙锁,这也是防止幻读的关键(RR隔离,Innodb默认隔离)ne...
2018-09-29 10:55:50
4102
转载 Redis 线程模型初探
Redis单线程众所周知,Redis执行任务为单线程,简化了编程模型,使用者也不用担心并发读写导致的可能的错误。为什么一般为了解决高吞吐、多并发的设计任务,都会基于多线程(Java中的线程池等方式),而Redis底层采用epoll方式对io进行复用,且Redis中操作主要为内存操作,不需要等待IO等因素(这些因素也是引入多线程的原因,等待IO、数据库等操作),也能避免多线程上下文切换带来的性...
2018-09-28 16:53:19
769
转载 Redis基础类型
基本类型字符串 string通过key获取值,一般将对象序列化成字符串后存储。redis中的字符串是动态字符串,可修改,类似于java中的ArrayList数据结构,采用预分配冗余空间的方式来减少频繁扩容行为。当字符串长度小于1M时,加倍现有空间(与java中容器扩容类似)。如果超过1M,扩容一次只会多扩1M空间,最大512M列表ListRedis中的List相当于Java中的双向链表...
2018-09-22 19:02:22
234
转载 反射为什么慢
反射为什么慢反射为什么慢反射为什么慢反射是什么为啥慢In the end先声明,主要为学习相关笔记,很多资料参考他人资料,如有侵权,请联系我,zhouyoutyj@163.com反射是什么反射,这套API在java中属于过了入门的,大部分人都听说过、用过的除了典型api而言,实际应用的并不多,首先就我的了解(参考很多资料),说说反射能干什么。反射运行正在运行的程序检测、甚至是修改程序的动...
2018-09-21 11:19:27
6153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人