学习笔记
xxy_hl
这个作者很懒,什么都没留下…
展开
-
Netty源码阅读笔记 (一) NioEventLoopGroup的创建
直接调用NioEventLoopGroup类中的无参构造: public NioEventLoopGroup() { this(0); } 调用单参构造并传入0: public NioEventLoopGroup(int nThreads) { this(nThreads, (Executor) null); } 调用双参构造: publi...原创 2019-12-15 12:26:05 · 167 阅读 · 0 评论 -
IOC/DI 学习笔记
** IOC/DI(控制反转/依赖注入)学习笔记 ** 常规编程对象由程序员自己通过构造方法得到的。ioc控制反转提供了一种新的思想,在程序开始执行时,由代码生成对象并进行集中管理。 对象的生成 通过反射机制调用构造方法生成对象。对象之间的依赖关系可以通过注入的方法进行处理。通过学习spring,得到以下方法:可以通过构造方法进行初始化;也可以先反射调用无参构造,通过遍历setter方法对其成员...原创 2019-01-17 17:07:26 · 151 阅读 · 0 评论 -
AOP 学习笔记
AOP: 面向切面编程 百度百科上官方的解释是:在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 主要功能 日志记录,性能统计,安全控制,事务处理,异常处理...原创 2019-01-17 18:44:01 · 296 阅读 · 0 评论 -
ConcurrentHashMap源码阅读笔记
上一篇文章中对HashMap的源码进行了简单的学习,但是HashMap在多线程的环境下会存在线程安全问题。所以呢这篇文章主要对ConcurrentHashMap的源码进行学习,了解一下ConcurrentHashMap是如何保证线程安全的。 HashMap源码阅读笔记:https://blog.csdn.net/xxy_hl/article/details/91947452 ConcurrentH...原创 2019-08-02 22:46:43 · 179 阅读 · 0 评论 -
NIO源码阅读笔记(一) Selector启动分析
Selector通过调用Selector.open()方法启动的: public static Selector open() throws IOException { return SelectorProvider.provider().openSelector(); } SelectorProvider.provider()方法如下,返回值为SelectorProv...原创 2019-08-18 08:54:34 · 122 阅读 · 0 评论 -
NIO源码阅读笔记(二) Channel
1. 关于Channel Channel是一个对象,可以通过它读取和写入数据。可以把它看做IO中的流。但是它和流相比还有一些不同: (1) Channel是双向的,既可以读又可以写,而流是单向的 (2) Channel可以进行异步的读写 (3) 对Channel的读写必须通过buffer对象 正如上面提到的,所有数据都通过Buffer对象处理,所以,您永远不会将字节直接写入到Channel中,相反...原创 2019-08-18 08:54:50 · 267 阅读 · 0 评论 -
NIO源码阅读笔记 select方法(三)
select方法的实现在SelectorImpl类中,有两种实现方式,无参的和单参的,无参方法直接调用单参方法,默认传入0: public int select(long var1) throws IOException { if (var1 < 0L) { throw new IllegalArgumentException("Negative t...原创 2019-08-18 08:55:08 · 427 阅读 · 0 评论