一、read与readfully
1 readFully
public void readFully
(byte[] buf)
throws IOException
public void readFully (byte[] buf,
int off,
int len)
throws IOException
2 read
public int read
()
throws IOException
读取数据字节。如果不存在可用的输入,此方法将发生阻塞。
public int read
(byte[] buf,
int off,
int len)
throws IOException
读入 byte 数组。在某些输入可用之前,此方法将发生阻塞。考虑使用 java.io.DataInputStream.readFully 读取正确“长度”的字节。
Read函数最多能读取参数数组的长度个字节,而readfully是必须将参数数组读满才返回.
二、tcp/ip和udp
1、TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对
方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、
形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数
据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机
一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数
据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送
和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
2、UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接
,而是直接就把数据包发送过去!
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机
之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,
如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据
包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收
到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,
所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到
消息的情况。
3、tcp协议和udp协议的差别
TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少量数据
速度 慢 快
三、EOF异常
当输入过程中意外到达文件或流的末尾时,抛出此异常。
此异常主要被数据输入流用来表明到达流的末尾。注意,其他许多输入操作返回一个特殊值表示到达流的末尾,而不是抛出异常。
当文件或者流已经结束,但是程序缺还在阻塞的读取数据就会出现这种异常。
四、NIO
http://smallsmile.iteye.com/admin/blogs/883221
五、http协议
六、订制TC/IP协议
七、监听模式
1、模型简介:
这种模型中,事件源,和对具体事件的处理,都是在独立的代码中,事件生产者,和处理者之间没有代码层的连结关系,这就是监听器这种设计模式带来的好处,改动一方的时候,不需要,也不会影响到另一方: 这是我们在类设计,系统设计中一直要追求的效果。这种设计模式依赖于接口实现, 接口充当了消息的生产者( 事件源) 和消息的处理者( 事件处理器) 之间连结的桥梁。
2、实现方法
第一、写一个通用的接口,定义一个每个组件都要实现的功能
第二、将各个器件实现接口
第三、写一个管理者的代码(线程),其中包含(1)第一步中实现的接口队列,(2)向组件发送消息的方法(3)注册组件的方法
最后、在使用时,首先定义一个管理者对象M。 再定义需要的组件,定义后将其注册到M。
八、对象的几种关系
UML中的关系
1、 关联关系
关联关系连接元素和链接实例,它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记
2、 依赖关系
依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示。
3、 泛化关系
泛化关系也称为继承关系,泛化用一条带空心三角箭头的实线表示,从子类指向父类。
4、 实现关系
实现关系描述一个元素实现另一个元素
5、 聚合关系
聚合关系描述元素之间部分和整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
6. 组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
九、高内聚,低耦合
1、高内聚,低耦合定义
首先要知道一个软件是由多个子程序组装而成,而一个程序由多个模块(方法)构成!
内聚就是指程序内的各个模块之间的关系紧密程度,耦合就是各个外部程序(子程序)之间的关系紧密程度。
2、 为什么要高内聚?
模块之间的关系越紧密,出错就越少!
3、为什么要低耦合?
子程序间的关系越复杂,就会产生更多的意想不到的错误!会给以后的维护工作带来很多麻烦。低耦合可以尽量的减少这种
麻烦。一般来说,一个好的程序应该是星状的而不是网状的。
十、单实例模型
1、模型简介
单实例模型主要用于仅允许实现对象的一个对象的条件。如在与QQ好友聊天时,用户的主界面仅允许创建一次。
2、实现方法
在对应的类中
(1)将构造器重写并私有化之,同时在类中要写一个static 的变量int count=0,一个私有属性:本类对象A a
(2)写一个getInstance()的方法,在方法中判断是否count为0,若为0,则返回a,count++;否则返回null
十一、工厂设计模型
1、模型简介
工厂模型分为三类: 1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。
工厂模式有三个参与者,抽象产品(Product)、工厂(Creator)和具体产品(ConcreteProduct)。客户只会看到工厂和抽象产品
2、实现方法
Prroduct :
public interface Product{
public String getName();
}
ConcreteProduct
public class ConcreteProduct implements Product{
public String getName(){
return "产品1";
}
}
Creator
public class Creator{
public static Product create1(){
return new ConcreteProduct();
}
}
工厂模式的作用在于将创建具体产品的方法由工厂类控制,客户只需要知道产品的抽象类型。
- 大小: 26.4 KB
分享到:
相关推荐
VB串口通信 VB串口通信是指在Visual Basic(VB)编程语言中,使用串口(Serial Port)进行数据通信的技术。串口通信是一种常用的数据通信方式,广泛应用于工业自动化、机器人控制、医疗设备、自动检测等领域。 VB...
这个附图教程展示了如何使用VB中的MSComm控件来配置和管理串口通信。以下是一些关键知识点: 1. **MSComm 控件**: - MSComm 控件是VB中用于串口通信的标准控件,提供了对串行端口的访问和控制。 - 在VB程序中,...
接下来,我们看到两个.DWG文件:"通信专业实务(附图用CAD查看工具AcmeCADConverter打开).dwg"和"通信专业实务(附图用CAD查看工具打开).dwg"。DWG是AutoCAD设计软件的标准文件格式,用于存储二维和三维图形。这些...
浙江创鲁班奖通信大楼施工质量汇报(附图丰富).ppt
附图名称如下: 附图1:Framework基本框架 附图2:Activity中创建窗口的过程 附图3:点击图标启动Activity 附图4:Activity的停止以及内存回收时机 附图5:按键消息获取流程 附图6:消息传递过程 附图7:View...
通达信源码指标公式黑马通道主附图公式.doc
附图名称如下: 附图1:Framework基本框架 附图2:Activity中创建窗口的过程 附图3:点击图标启动Activity 附图4:Activity的停止以及内存回收时机 附图5:按键消息获取流程 附图6:消息传递过程 附图7:View状态...
文华财经指标公式源码WH6指标公式期货软件指标主力指标公式附图.doc
标题中的“vb RS232串口通讯程序,源码附图教程”指的是一个使用Visual Basic(VB)编写的程序,该程序实现了通过RS232串行接口进行通信的功能。RS232是一种标准的串行物理接口,广泛用于设备间的通信,如计算机与...
专利说明书附图制作 专利说明书附图制作是 Computer-Aided Design(CAD)软件的应用之一,旨在帮助用户快速创建专业的专利说明书附图。该教程将指导用户从基础设置到完成专利说明书附图的制作过程。 CAD 基础设置 ...
#### 六、总结 通过对上述文档的分析,我们可以了解到东风、万宝小区综合整治通信配套改造工程中的电气工程部分,特别是DN70镀锌钢管入户的隐蔽工程的具体实施细节。该工程严格执行了相关的国家标准与地方标准,...
很抱歉,由于您提供的信息中并未包含具体的文件内容或问题描述,我...为了提供更具体的信息,如API用法、示例代码或解决特定问题的建议,请提供更详细的问题描述或附图内容。这样我才能确保生成的内容符合您的需求。
规划文件中还涉及了通信局所规划、移动通信基站建设规划、通信管道规划等关键技术要点,并通过一系列附表和附图对规划内容进行了具体的呈现。规划的指导思想和基本原则都是基于对5G发展背景的深刻理解,将政府引导、...
通达信指标公式源码一个大中牛附图指标.doc
7. **参考文献**:列出在论文撰写过程中引用的相关资料,反映了研究的依据和理论支持。 8. **附图**:论文中的图表可能包括网站架构图、数据库模型图、用户流程图等,帮助读者更直观地理解系统的结构和运作方式。 ...
总结而言,物资采购制度及流程旨在确保企业采购工作的规范、高效和经济,通过严格的流程控制和权限划分,降低了采购风险,提高了资源利用率。对于教育领域的企业来说,遵循这样的制度能更好地管理和优化其物资采购...
通达信指标公式源码 ma boll主图;obv暴涨附图,猎狐先觉附图、主力散户筹码附图.doc
"通达信主力控盘附图指标"是用户自定义的一个技术指标,旨在通过计算一系列参数来评估市场的主力控盘情况,从而为投资者提供决策依据。 在该指标中,主要有以下几个关键组成部分: 1. **N 和 M**: 这是两个参数,...
共振理论个股大盘行业通达信指标公式源码 共振理论是指某个股票或大盘在一定时间内的价格走势与其他股票或大盘的价格走势之间存在某种相关性的理论。在这个公式中,我们可以看到作者使用了多个变量和函数来计算个股...
标题中的“参考资料-T0605_地基钎探记录(应附图).zip”表明这是一份关于地基钎探记录的压缩文件,其中可能包含与建筑工程...对于学习建筑工程的人来说,这也是一种实践案例的学习材料,有助于理解和应用理论知识。