随笔分类 - Java基础
摘要:一、模板方法模式(封装算法)定义: 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。要不要挂
阅读全文
摘要:一、Netty的高性能 Netty的架构设计是如何实现高性能的: (1)采用异步非阻塞的I/O,基于Reactor模式实现(主从模式),解决了传统的同步阻塞I/O模式的服务端无法平滑地处理线性增长的客户端的问题 (2)TCP接收和发送缓冲区采用直接内存而非是堆内存,从而避免了内存复制,提升了I/O的
阅读全文
摘要:一.ChannelHandler的功能说明 ChannelHandler类似Servlet的Filter过滤器,负责对I/O事件或者I/O操作进行拦截和处理,它可以选择性地拦截和处理自己感兴趣的事件,也可以透传和终止事件的传递。 ChannelHandler支持注解,目前就支持两种注解: 1)@Sh
阅读全文
摘要:一.ChannelPipeline和ChannelHandler的简介 Netty的ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器,这类拦截器实际上是职责责任链模式的一种变形,主要是为了方便事件的拦截和用户业务逻辑的定制。 Netty的Cha
阅读全文
摘要:高性能 I/O 设计模式 Reactor 一.Reactor模式与Proactor模式比较 一般I/O模型分为如下三类:同步阻塞、同步非阻塞、异步阻塞、异步非阻塞 (1)同步阻塞 在此种方式下,用户进程在发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户进程才能运行。J
阅读全文
摘要:一、TCP粘包/拆包解析 TCP是个“流”协议,所谓流,就是没有界限的一串数据。大家可以想想河里的流水,是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多
阅读全文
摘要:一、不选择Java原生NIO编程的原因(1)NIO的类库和API复杂,使用麻烦,你需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等(2)需要具备其他的额外技能做铺垫,例如熟悉Java多线程编程。这是因为NIO编程涉及到React
阅读全文
摘要:一.类加载过程简介 类的加载一般分为三个比较大的阶段,分别是加载阶段、连接阶段和初始化阶段。 1.加载阶段 主要负责查找并且加载类的二进制数据文件,其实就是class文件 2.连接阶段 连接阶段所做的工作比较多,主要分为以下三个阶段: (1)验证阶段 主要是保证确保类的正确性,譬如class文件的版
阅读全文

浙公网安备 33010602011771号