07 2016 档案
摘要:一、概念 1、定义 反应堆模式是一种对象行为类的设计模式,对同步事件分拣和派发。它是处理并发I/O比较常见的一种模式,用于同步I/O。 其中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上;一旦有I/O事件到来或者是准备就绪,多路复用器返回并将相应的I/
阅读全文
摘要:一、客户端开发时序图 图片来源:Netty权威指南(第2版) 二、Netty客户端开发步骤 使用Netty进行客户端开发主要有以下几个步骤: 1、用户线程创建Bootstrap Bootstrap是Socket客户端创建工具类,通过API设置创建客户端相关的参数,异步发起客户端连接。 2、创建处理客
阅读全文
摘要:一、服务器端开发时序图 图片来源:Netty权威指南(第2版) 二、Netty服务器端开发步骤 使用Netty进行服务器端开发主要有以下几个步骤: 1、创建ServerBootstrap实例 ServerBootstrap是Netty服务器端的启动辅助类,提供了一系列的方法用于设置服务器端启动相关的
阅读全文
摘要:一、NIO类库简介 1、缓冲区Buffer Buffer是一个对象,包含一些要写入和读出的数据。 在NIO中,所有的数据都是用缓冲区处理的,读取数据时,它是从通道(Channel)直接读到缓冲区中,在写入数据时,也是从缓冲区写入到通道。 缓冲区实质上是一个数组,通常是一个字节数组(ByteBuffe
阅读全文
摘要:一、概述 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocki
阅读全文
摘要:一、概述 读和写是I/O的基本过程。从一个通道中读取只需创建一个缓冲区,然后让通道将数据读到这个缓冲区。写入的过程是创建一个缓冲区,用数据填充它,然后让通道用这些数据来执行写入操作。 二、从文件中读取 1、原始I/O读文件 如果使用原来的I/O,那么只需要创建一个FileInputStream并从它
阅读全文
摘要:一、题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15
阅读全文
摘要:一、题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 二、解题思路 1、思路1 首先对数组进行排序,然后取出前k个数。排序方法可选用快速排序,时间复杂度为O(nl*ogn)。示例代码: 2、思路2 首先将这堆数据中前
阅读全文
摘要:一、概念 1、定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式就要应对规则变化和新规则加入对程序带来的影响。 通过接口可以避免直接调用规则,从而使得业务变化不会对规则产生影响,同时,添加新规则也不会影响业务流程。
阅读全文