1.Http知识笔记
参考自:计算机网络:这是一份全面& 详细 HTTP知识讲解
1.定义:一种超文本传输协议,属于应用层。
2.作用:用于包装数据。
3.特点:采用tcp作为传输层协议(tcp面向连接,安全性高).传输可靠性高。
2.Socket知识笔记
参考自:Android:这是一份很详细的Socket使用攻略
1.即套接字,是应用层与tcp/ip协议簇通信的中间软件抽象层,表现为一个封装了TCP/IP协议簇的编程接口(API)
注意:
*socket不是一个协议,而是一个编程接口.属于传输层(主要解决数据如何在网络中传输)
*通过socket,我们才能在android平台上通过tcp/ip协议进行开发
*对用户来说,只需调用socket去组织数据,以符合指定的协议,即可通信
2.原理
socket的使用类型主要有两种
*流套接字:基于TCP协议,采用流的方式提供可靠的字节流服务。
*数据报套接字:基于UDP协议,采用数据报文提供数据打包发送的服务。
3.socket与http对比
*socket属于传输层,因为tcp/ip协议属于传输层,解决的是数据如何在网络中传输的问题
*http协议数据应用层,解决的是如何包装数据
由于二者不属于同一层面,所以本来是没有可比性的,但随着发展,默认的http里封装了下面几层的使用,所以才会出现socket和http协议的比较(主要是工作方式不同):
*http采用请求-相应方式
即建立网络连接后,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。可理解为是客户端有需要菜进行通信。
*socket采用服务器主动发送数据的方式
即建立网络连接后,服务器可主动发送消息给客户端,而不是由客户端向服务器发送请求,可理解为是服务器端有需要才进行通信。
3.HashMap
4.java三大特征.
Java之封装、继承和多态(超详细)
1.封装
定义:隐藏对象的属性和实现细节,仅提供公共访问方法来让外部访问.
作用:隐藏类数据的实现细节,方便修改实现.
*封装涉及到四个访问修饰符,private,默认,protected,public.
2.继承
定义:子类继承父类的特征和行为,使得子类对象具有父类的成员变量和方法,还可以在此基础上添加新成员变量和方法,默认继承Object类.
作用:提高代码复用性,便于功能扩展,为多态的使用提供了前提.
*当父类的成员变量与子类的成员变量同名冲突时,优先访问子类的成员变量.
*super关键字可用于访问与子类重名的成员变量或方法.
*final修饰变量时,变量无法更改,修饰方法时,方法不能重写.
*java只允许单继承,不允许多继承,但允许多层继承.
3.多态
定义:不同的对象对同一行为的不同实现.多态的前提是存在继承关系,向上引用或者向下引用(不安全).
作用:提高了代码的通用性,常称作接口重用.