摘要:
ArrayList和LinkedList有什么区别? 首先,他们的底层数据结构不同,ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的 由于底层数据结构不同,他们所适用的场景也不同,ArrayList更适合随机查找,LinkedList更适合删除和添加,查询、添加、删除 阅读全文
摘要:
第四章 JAVA AIO深入剖析 1.1 AIO编程 Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。 AIO 异步非阻塞,基于NIO的,可以称之为NIO2.0 BIO NIO AIO So 阅读全文
摘要:
第三章 JAVA NIO深入剖析 在讲解利用NIO实现通信架构之前,我们需要先来了解一下NIO的基本特点和使用。 1.1 Java NIO 基本介绍 Java NIO(New IO)也有人称之为 java non-blocking IO是从Java 1.4版本开始引入的一个新的IO API,可以替代 阅读全文
摘要:
第二章 JAVA BIO深入剖析 1.1 Java BIO 基本介绍 Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.io BIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需 要启动一个线程进行处理, 阅读全文
摘要:
第一章 Java的I/O演进之路 1.1 I/O 模型基本说明 I/O 模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了程序通信的性能,Java 共支持 3 种网络编程的/IO 模型:BIO、NIO、AIO 实际通信需求下,要根据不同的业务场景和性能需求决定选择不 阅读全文
摘要:
中介者模式、备忘录模式 中介者模式 交给中介者去完成需求,让原本相互调用的组件解耦 一、智能家庭项目 智能家庭项目: 1)智能家庭包括各种设备, 闹钟、咖啡机、电视机、窗帘等 2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起-;咖啡机开始做咖啡-;窗帘自动落下 阅读全文
摘要:
模板模式、命令模式 模板模式 一、豆浆制作问题 编写制作豆浆的程序,说明如下: 1)制作豆浆的流程 选材—;添加配料—;浸泡—;放到豆浆机打碎 2)通过添加不同的配料,可以制作出不同口味的豆浆 3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的 4)请使用模板方法模式完成(说明 阅读全文
摘要:
访问者模式 访问者模式 这个模式用的很少,《设计模式》的作者评价为: 大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了 一、测评系统的需求 1)将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功、失败 等 阅读全文
摘要:
解释器模式、状态模式 解释器模式 根据不同的业务场景,来对应抽象不同的元素抽象类,抽象类可能有多个子类,然后实现解释一个表达式的处理 一、四则运算问题 通过解释器模式来实现四则运算,如计算 a+b-c 的值,具体要求 1)先输入表达式的形式,比如 a+b+c-d+e, 要求表达式的字母不能重复 2) 阅读全文
摘要:
策略模式、职责链模式 策略模式 将原本继承的方式,换成组合、聚合,让算法变化(策略)与算法客户(对象)分离 一、编写鸭子项目,具体要求如下: 1)有各种鸭子(比如 野鸭、北京鸭、水鸭等, 鸭子有各种行为,比如 叫、飞行等) 2)显示鸭子的信息 二、传统方案解决鸭子问题的分析和代码实现 1)传统的设计 阅读全文