1.网络编程
1.1网络编程的基本概念
1)含义及场景
在网络通信协议下,不同计算机上运行的程序,进行的数据传输。
应用场景:即时通信、网络对战、金融证券、国际贸易、邮件......
Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序
2)常见的软件架构
1>C/S:(Client/Server 客户端/服务器端)在用户本地需要下载并安装客户端的程序,在远处有一个服务器端程序
优缺点:1)画面精美,用户体验好 2)需要开发客户端和服务端 3)用户下载和更新麻烦
2>B/S:(Browser/Server 浏览器/服务器)只需要一个浏览器,用户通过不同的网址,访问到不同的服务器
优缺点:1)不需要开发客户端,只需要页面+服务器端 2)用户不需要下载,打开浏览器就能使用 3)如果引用过大,用户体验受到影响
1.2网络编程的三要素
1)IP:设备在网络中的地址,是唯一的标识
全称:Internet Protocol,是互联网协议地址,也称IP地址,是分配给上网设备的数字标签
1>IPv4:互联网通信协议第四版,采用32位地址长度,分成4组,采用点分十进制表示法。
32bit(4个字节)->11000000 10101000 00000001 01000010 = 192.168.1.66
公网地址(万维网使用)和私有地址(局域网使用)。192.168开头的就是私有地址。
127.0.0.1,也可以是localhost: 是回送地址,也称本机IP,永远只会寻找当前所在本机。
常用CMD命令:ipconfig:查看本机IP地址,ping:检查网络是否连通
2>IPv6:采用128位地址长度,分成8组,采用冒分十六进制表示法。128bit(8个字节)
2)端口号:应用程序在设备中唯一的标识
端口号是由两个字节表示的整数,取值范围0~65535.其中0-1023之间的端口用于一些知名的网络服务或应用。一个端口只能被一个应用程序使用。
3)协议:数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp

UDP协议(用户数据报协议):UDP是面向无连接,速度快,有大小限制,一次最多发送64K,数据不安全,易丢失数据。不管是否连接成功都进行发送。
TCP协议(传输控制协议TCP):TCP是面向连接的通信协议,速度慢,没有大小限制,数据安全。确保连接成功发送。
1.3UDP通信程序
发送数据:1>创建发送端DatagramSocket对象 2>数据打包(DatagramPacket)3>发送数据 4>释放资源
接收数据:1>创建接收端的DatagramSocket对象 2>接收打包好的数据 3>解析数据包 4>释放资源
UDP通信的三种方式:
1)单播:一对一,只对一台电脑发送数据。
2)组播:对一组电脑发送数据。
组播地址:224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留的组播地址。
3)广播:可以给局域网中所有电脑发送数据。
广播地址:255.255.255.255
1.4TCP通信程序
TCP通信时一种可靠的网络协议,它在通信的两端各建立一个Soket对象。通信之前要保证连接已经建立,通过Socket产生IO流来进行通信。

1)TCP的三次握手:确保连接的建立

2)TCP的四次挥手:确保连接断开,且数据处理完毕

2.反射
反射允许对成员变量,成员方法和构造方法的信息进行编程访问。也就是说可以获取类里面的所有信息。
1)获取
1>获取class对象的三种方式
Class.forName("全类名")----源代码阶段:编写Java文件,将Java文件编译成class文件,本阶段未把代码加载进内存,只在硬盘中进行了操作。【全类名=包名+类名】【最常用】
类名.class---加载阶段:字节码文件加载到内存中。【一般作为参数进行传递】
对象.getClass();---运行阶段:将对象加载到内存中。【当已经有对象才能使用】
2>获取构造方法的对象--Constructor


3>获取字段(成员变量)的对象--Field


4>获取成员方法的对象--Method



2)作用
获取一个类里面的所有的信息,获取到了之后,再执行其他业务逻辑
结合配置文件,动态的创建对象并调用方法
3.动态代理
特点:无侵入式的给代码增加额外的功能

代理里面就是对象要被代理的方法。
Java通过接口保证,后面的对象和代理需要实现同一个接口。接口中就是被代理的所有方法。
怎么为Java对象创建一个代理对象?
