### 网络编程
* **网络编程的三要素**
* **网络协议**
* 网络通信协议:计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。进行多台计算机之间的数据传递时,使用什么什么样的协议传输效率更高更快
* TCP/IP协议簇:应用层,传输层(TCP\UDP),网络层,物理层(数据链路层)
* **IP地址**
* IP地址是用来做什么的,IP地址的分类(协议 )唯一的标识 Internet 上的计算机(通信实体
*IP地址分类方式1:IPV4 和 IPV6
IPV4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。以点分十进制表示,如192.168.0.1
IPV6:128位(16个字节),写成8个无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
* **InetAddress----域名 域名解析**
* **端口号**
* **标识计算机上唯一的应用程序,0-65535**
* **TCP网络编程**
* **Socket、ServerSocket**
* **Socket中常用的一些方法**
```
getOutputStream(): OutputStream
getInputStream():InputStream
getInetAddress():InetAddress
close()
shutDownOutput()
shutDownInput()
```
* **客户端和服务端**
* **UDP网络编程**
* **DatagramSocket、DatagramPacket**
* **接受方和发送方**
### JUnit单元测试
* **在项目开发过程中,对一些重点的功能通过单元测试进行调试,没有问题之后再部署上线**
* **引入单元测试的依赖jar包**
* **@Before @Test @After**
```
这三个注解都是声明在类的普通方法上。其中@Test修饰的普通方法会具备main方法的执行能力
```
### Debug断点调试
* **作用有两个:1、去寻找我们的代码怎么产生的bug,尤其是空指针异常;2、查看底层源码的执行流程和实现机制**