2018年12月21日

摘要: Netty 源码 ChannelHandler(四)编解码技术 __Netty 系列目录()__ 一、拆包与粘包问题 由于 TCP 是面向字节流的,什么意思呢:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成式一连串的无结构的字节流。TCP 并不 阅读全文
posted @ 2018-12-21 08:17 binarylei 阅读(249) 评论(0) 推荐(0) 编辑

2018年12月20日

摘要: Netty 源码 ChannelHandler(三)概述 __Netty 系列目录()__ 一、ChannelInboundHandler 和 ChannelOutboundHandler Netty 中的事件分为 Inbound 事件和 Outbound 事件。 Inbound 事件通常由 IO 阅读全文
posted @ 2018-12-20 21:47 binarylei 阅读(232) 评论(0) 推荐(0) 编辑
摘要: Netty 源码 Channel(二)核心类 [toc] __Netty 系列目录()__ 相关文章: "4.1 Netty 源码 Channel(一)概述" "4.2 Netty 源码 Channel(二)核心类" 1. Channel 类图 2. AbstractChannel 2.1 几个重要 阅读全文
posted @ 2018-12-20 08:30 binarylei 阅读(314) 评论(0) 推荐(0) 编辑

2018年12月19日

摘要: Netty 源码 Channel(二)主要类 __Netty 系列目录()__ 一、Channel 类图 二、AbstractChannel 2.1 几个重要属性 2.2 核心 API read、write、connect、bind 都委托给了 pipeline 处理。 三、AbstractNioC 阅读全文
posted @ 2018-12-19 21:59 binarylei 阅读(205) 评论(0) 推荐(0) 编辑

2018年12月18日

摘要: Netty 源码 Channel(一)概述 [toc] __Netty 系列目录()__ 相关文章: "Netty 源码 Channel(一)概述" "Netty 源码 Channel(二)核心类" Channel 为 Netty 网络操作抽象类,EventLoop 主要是为 Channel 处理 阅读全文
posted @ 2018-12-18 21:30 binarylei 阅读(208) 评论(0) 推荐(0) 编辑
摘要: Netty 源码 NioEventLoop(三)执行流程 [toc] __Netty 系列目录()__ 相关文章: "Netty 源码 NioEventLoop(一)初始化" "Netty 源码 NioEventLoop(二)Channel 注册" "Netty 源码 NioEventLoop(三) 阅读全文
posted @ 2018-12-18 17:38 binarylei 阅读(450) 评论(0) 推荐(0) 编辑
摘要: Netty 组件简介 [toc] __Netty 系列目录()__ 1. "Netty" 架构 Core:核心部分,是底层的⽹网络通⽤用抽象和部分实现。 Extensible Event Model :可拓拓展的事件模型。Netty 是基于事件模型的⽹网络应⽤用框架。 Universal Commu 阅读全文
posted @ 2018-12-18 12:04 binarylei 阅读(414) 评论(0) 推荐(0) 编辑
摘要: Netty 源码(二)NioEventLoop 之 Channel 注册 [toc] __Netty 系列目录()__ 相关文章: "Netty 源码 NioEventLoop(一)初始化" "Netty 源码 NioEventLoop(二)Channel 注册" "Netty 源码 NioEven 阅读全文
posted @ 2018-12-18 10:44 binarylei 阅读(634) 评论(0) 推荐(1) 编辑

2018年12月15日

摘要: Java 算法(一)贪心算法 __数据结构与算法目录()__ 一、贪心算法 什么是贪心算法?是指在对问题进行求解时,总是做出当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所得出的结果仅仅是某种意义上的局部最优解。 __因此贪心算法不会对所有问题都能得到整体最优解,但对于很多问题能产生整体最 阅读全文
posted @ 2018-12-15 09:24 binarylei 阅读(592) 评论(0) 推荐(0) 编辑

2018年12月14日

摘要: Netty Reator(三)Reactor 模型 [toc] __Netty 系列目录 ()__ 相关文章: "Netty Reator(一)基本的并发编程模型" "Netty Reator(二)Scalable IO in Java" "Netty Reator(三)Reactor 模型" 本文 阅读全文
posted @ 2018-12-14 08:00 binarylei 阅读(865) 评论(0) 推荐(0) 编辑
摘要: Netty Reator(二)Scalable IO in Java [toc] __Netty 系列目录 ()__ 相关文章: "Netty Reator(一)基本的并发编程模型" "Netty Reator(二)Scalable IO in Java" "Netty Reator(三)React 阅读全文
posted @ 2018-12-14 07:59 binarylei 阅读(347) 评论(0) 推荐(0) 编辑
摘要: Reactor 模型(一)基本并发编程模型 [toc] __Netty 系列目录 ()__ 相关文章: "Netty Reator(一)基本的并发编程模型" "Netty Reator(二)Scalable IO in Java" "Netty Reator(三)Reactor 模型" 在讲解 Re 阅读全文
posted @ 2018-12-14 07:58 binarylei 阅读(885) 评论(1) 推荐(0) 编辑
摘要: Netty 零拷贝(三)Netty 对零拷贝的改进 [toc] __Netty 之美系列目录 ()__ 相关文章: "Netty 零拷贝(一)Linux 零拷贝" "Netty 零拷贝(二)NIO 对零拷贝的支持" "Netty 零拷贝(三)Netty 对零拷贝的改进" Netty 的“零拷贝”主要 阅读全文
posted @ 2018-12-14 07:53 binarylei 阅读(1009) 评论(2) 推荐(1) 编辑
摘要: Netty 之美目录 相关资源: 网络编程原理目录: Netty 之美目录: 本文是极客时间 "《Netty源码剖析与实战》" 的学习笔记,感兴趣的可以订阅正版。 1. [Netty 初识] [1.0 Netty 怎么学] [1.1 Netty 面试题精选] 2. [Netty 源码:领域知识(必备 阅读全文
posted @ 2018-12-14 07:51 binarylei 阅读(2086) 评论(0) 推荐(0) 编辑

2018年12月13日

摘要: Java数据结构 散列表原理 [toc] __数据结构与算法目录()__ 散列表(Hash table) 也叫哈希表,借助散列函数对数组进行扩展,利用的是数组支持按照下标随机访问元素的特性。散列表两个核心问题是散列函数和散列冲突。散列函数有 MD5、SHA、CRC 等哈希算法。散列冲突开放寻址法和链 阅读全文
posted @ 2018-12-13 21:58 binarylei 阅读(575) 评论(0) 推荐(0) 编辑
摘要: Java数据结构和算法(七)B+ 树 __数据结构与算法目录()__ 我们都知道二叉查找树的查找的时间复杂度是 O(logN),其查找效率已经足够高了,那为什么还有 B 树和 B+ 树的出现呢?难道它两的时间复杂度比二叉查找树还小吗?答案当然不是, B 树和 B+ 树的出现是因为另外一个问题,那就是 阅读全文
posted @ 2018-12-13 21:44 binarylei 阅读(2155) 评论(0) 推荐(0) 编辑
摘要: Java 数据结构 堆和堆排序:为什么快排比堆排序性能好 [toc] __数据结构与算法目录()__ 关于二叉树这种数据结构在实现软件工程中的应用,前面我们已经介绍了红黑树,下面我们再介绍另一种常见的二叉树 堆。 红黑树:基于平衡二叉查找树的动态数据结构,用于快速插入和查找数据,其时间复杂度都是 O 阅读全文
posted @ 2018-12-13 19:32 binarylei 阅读(963) 评论(0) 推荐(0) 编辑
摘要: Java 数据结构 红黑树:为什么工程中使用的平衡二叉查找树都是红黑树? [toc] __数据结构与算法目录()__ 1. 平衡二叉查找树 平衡二叉树:二叉树中任意一个节点的左右子树的高度相差不能大于 1。 从这个定义来看,完全二叉树、满二叉树其实都是平衡二叉树。常用的平衡二叉查找树的实现有两种: 阅读全文
posted @ 2018-12-13 19:26 binarylei 阅读(281) 评论(0) 推荐(0) 编辑
摘要: Java数据结构和算法(一)线性结构之单链表 单链表的结构如上:最后一个节点的 next=null。下面看一下代码。 __(1) 链表的基本操作__ __(2) 取出中间节点__ 偶数节点取中间两个节点的前一个节点,奇数节点取正中间的节点 __(3) 链表反转__ 测试一把: __(4) 有序链表的 阅读全文
posted @ 2018-12-13 19:24 binarylei 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Java数据结构和算法(一)线性结构 __数据结构与算法目录()__ __线性表__ 是一种逻辑结构,相同数据类型的 n 个数据元素的有限序列,除第一个元素外,每个元素有且仅有个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。 一、基本概念 __线性表具有以下特点:__ 元素个数有限 逻辑 阅读全文
posted @ 2018-12-13 19:23 binarylei 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 数据结构与算法之美 学习资源推荐 《数据结构与算法分析:Java语言描述》 LeetCode: 数据结构可视化网站: 数据结构可视化网站: 1. [Java数据结构和算法 概述篇] "1.1 Java 数据结构和算法 复杂度分析" [1.2 Java 数据结构和算法 数据结构总结] [1.3 Jav 阅读全文
posted @ 2018-12-13 19:20 binarylei 阅读(1074) 评论(1) 推荐(2) 编辑
摘要: Java 数据结构 二叉树概念:什么样的二叉树可以使用数组存储 [toc] 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 前面讲到的链表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构 树。「一对多」就是指一个元素只能 阅读全文
posted @ 2018-12-13 19:14 binarylei 阅读(1156) 评论(0) 推荐(0) 编辑

2018年12月11日

摘要: 数据结构与算法之美 学习资源推荐 《数据结构与算法分析:Java语言描述》 LeetCode: 数据结构可视化网站: 数据结构可视化网站: 1. [Java数据结构和算法 概述篇] "1.1 Java 数据结构和算法 复杂度分析" [1.2 Java 数据结构和算法 数据结构总结] [1.3 Jav 阅读全文
posted @ 2018-12-11 08:29 binarylei 阅读(282) 评论(0) 推荐(0) 编辑
摘要: Java数据结构和算法(三)顺序存储的树结构 二叉树也可以用数组存储,可以和完全二叉树的节点一一对应。 一、树的遍历 每天用心记录一点点。内容也许不重要,但习惯很重要! 阅读全文
posted @ 2018-12-11 08:18 binarylei 阅读(246) 评论(0) 推荐(0) 编辑
摘要: Java 数据结构 二叉查找树:有了高效的哈希表,为什么还需要二叉树 [toc] __数据结构与算法之美目录()__ 在学习二叉查找树之前,我们先看一下,目前已经接触的几种高效的数据结构的时间复杂度: 有序数组:查找的时间复杂度为 O(logn),但如果数据发生变化,查找前就需要重新排序,时间复杂度 阅读全文
posted @ 2018-12-11 08:18 binarylei 阅读(809) 评论(0) 推荐(0) 编辑

2018年12月9日

摘要: Java数据结构和算法(一)树 前面讲到的链表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构 树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。 一、树的基本概念 __度(Degree)__ :节点拥有的子树数。树的度是树中各个节点度的最大值。 __节点__ :度为 0 的节点称 阅读全文
posted @ 2018-12-09 10:02 binarylei 阅读(379) 评论(0) 推荐(0) 编辑

2018年12月6日

摘要: 数据结构和算法(一)复杂度分析 __数据结构与算法目录()__ [toc] 数据结构和算法本身解决的是 "快" 和 "省" 的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用:时间复杂度和空间复杂度 阅读全文
posted @ 2018-12-06 21:20 binarylei 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 并发编程(五)LockSupport LockSupport 提供 park() 和 unpark() 方法实现阻塞线程和解除线程阻塞,实现的阻塞和解除阻塞是基于“许可(permit)”作为关联,permit 相当于一个信号量(0,1),默认是0。 线程之间不再需要一个 Object 或者其它变量来 阅读全文
posted @ 2018-12-06 08:27 binarylei 阅读(229) 评论(0) 推荐(0) 编辑
摘要: UnSafe 本文是 sun.misc.Unsafe 公共 API 的简要概述,及其一些有趣的用法。即使 Unsafe 对应用程序很有用,但(建议)不要使用它。 一、创建 Unsafe 实例 Unsafe 的构造器是私有的。它也有一个静态的 getUnsafe() 方法,但如果你直接调用 Unsaf 阅读全文
posted @ 2018-12-06 08:27 binarylei 阅读(539) 评论(0) 推荐(0) 编辑

2018年12月5日

摘要: 并发编程(四)TaskFuture ExecutorService 异步执行任务返回一个 Future,本节重点分析 Future 的 get 方法是如何拿到返回结果的呢? 下面我们重点分析 FutureTask 类 一、基本变量 __(1) 核心成员变量__ __(2) 状态变化__ 任务执行正常 阅读全文
posted @ 2018-12-05 08:28 binarylei 阅读(429) 评论(0) 推荐(0) 编辑

2018年12月2日

摘要: Netty 源码 NioEventLoop(一)初始化与启动 [toc] __Netty 系列目录()__ 相关文章: "Netty 源码 NioEventLoop(一)初始化" "Netty 源码 NioEventLoop(二)Channel 注册" "Netty 源码 NioEventLoop( 阅读全文
posted @ 2018-12-02 18:34 binarylei 阅读(592) 评论(0) 推荐(0) 编辑
摘要: Netty 零拷贝(二)NIO 对零拷贝的支持 [toc] __Netty 之美系列目录 ()__ 相关文章: "Netty 零拷贝(一)Linux 零拷贝" "Netty 零拷贝(二)NIO 对零拷贝的支持" "Netty 零拷贝(三)Netty 对零拷贝的改进" 非直接缓冲区(HeapByteB 阅读全文
posted @ 2018-12-02 14:43 binarylei 阅读(645) 评论(0) 推荐(0) 编辑
摘要: Netty 零拷贝(一)Linux 零拷贝 [toc] __Netty 之美系列目录 ()__ 相关文章: "Netty 零拷贝(一)Linux 零拷贝" "Netty 零拷贝(二)NIO 对零拷贝的支持" "Netty 零拷贝(三)Netty 对零拷贝的改进" 本文探讨 Linux 中主要的几种零 阅读全文
posted @ 2018-12-02 13:36 binarylei 阅读(1033) 评论(0) 推荐(0) 编辑

2018年11月29日

摘要: 启动服务(上)服务端:NioServerSocketChannel 是什么时候激活的 [toc] __Netty 系列目录()__ 本文会从请求处理的角度分析 Netty 源码,包含以下 7 个过程:启动服务、构建连接、接收数据、业务处理、发送数据、断开连接、关闭服务。 Netty 服务端启动,最主 阅读全文
posted @ 2018-11-29 20:50 binarylei 阅读(510) 评论(0) 推荐(0) 编辑

2018年11月27日

摘要: Reactor 模型(一)基本并发编程模型 在讲解 Reactor 线程模型之前,我们需要先对基本并发编程模型:串行工作模型、并发工作模型进行讲解。 串行工作者模型和并行工作者模型关注的是将任务划分为 2 个阶段:__一是任务的接受阶段;二是任务的处理阶段__。而 Reactor 线程模型关注的是上 阅读全文
posted @ 2018-11-27 08:05 binarylei 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 并发编程(三)Promise, Future 和 Callback __异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 阅读全文
posted @ 2018-11-27 07:50 binarylei 阅读(1369) 评论(0) 推荐(0) 编辑
摘要: 并发编程(二)concurrent 工具类 一、CountDownLatch 经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作。 1. 声明一个 CountDownLatch 对象,参数 2 表示被阻塞的线程需要被唤醒再次才能执行。 2. countDown() 调用两次后,主线程 阅读全文
posted @ 2018-11-27 07:46 binarylei 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 并发编程(一)同步类容器和并发类容器 一、同步类容器 同步类容器是 __线程安全__ 的,如 Vector、HashTable 等容器的同步功能都是由 等工厂方法去创建实现的,底层使用 synchronized 关键字,每次只有一个线程访问容器。这明显__不满足高并发的需求__。 __源代码:__ 阅读全文
posted @ 2018-11-27 07:42 binarylei 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Executor(二)ThreadPoolExecutor、ScheduledThreadPoolExecutor 及 Executors 工厂类 Java 中的线程池类有两个,分别是:ThreadPoolExecutor 和 ScheduledThreadPoolExecutor,这两个类都继承自 阅读全文
posted @ 2018-11-27 07:40 binarylei 阅读(320) 评论(0) 推荐(0) 编辑
摘要: Executor(一)ExecutorService 线程池 本篇主要涉及到的是 java.util.concurrent 包中的 ExecutorService。ExecutorService 就是 Java 中对线程池的实现。 一、ExecutorService 介绍 Java API 对 Ex 阅读全文
posted @ 2018-11-27 07:39 binarylei 阅读(681) 评论(0) 推荐(0) 编辑

导航