【通信、CS、BS、Junit、反射、注解】

这里写目录标题

一、网络通信

1、网络通信三要素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、InetAddress方法

在这里插入图片描述

在这里插入图片描述

3、协议

在这里插入图片描述

在这里插入图片描述

二、UDP通信

1、客户端发送数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、服务端接受数据

在这里插入图片描述

在这里插入图片描述

3、运行

先启动客户端:
在这里插入图片描述
先启动服务端:
不止可以获取数据包,还可以获取客户端ip、端口

在这里插入图片描述

4、UDP:也可以多个客户端多发多收

在这里插入图片描述
多客户端:
在这里插入图片描述
在这里插入图片描述

不指定端口,随机获取一个客户端端口
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、TCP通信

1、客户端发送(单发)

在这里插入图片描述
在这里插入图片描述

2、服务端收(单收)

单收:收完就关闭管道
在这里插入图片描述

3、连续多发多收(while true)问题(一个客户端)

在这里插入图片描述

4、改进(一个客户端)

在这里插入图片描述

5、TCP多发多收(多个客户端)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6、获取上下线的线程

在这里插入图片描述

7、群聊

在这里插入图片描述
在这里插入图片描述

1、定义static 类型的集合,记录在线客户端 (Server)

来了一个客户端想要连接请求,Server就把他加入在线客户端
在这里插入图片描述

2、打印服务器端接收到的消息同时,把数据发送到所有在线客户端

如果有客户端退出,管道关闭,则dis.readUTF抛出异常,执行集合的remove方法
在这里插入图片描述

3、发送方法

在这里插入图片描述

4、创建客户端接收消息类ClientReaderThread(Clent)

在Client类中传递参数socket:通向自己的管道,用来接收服务器端发送的消息
在这里插入图片描述

在这里插入图片描述

四、BS架构

1、一个请求对应一个线程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、线程池优化:高并发也不会资源耗尽导致瘫痪

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、单元测试:Junit框架

1、步骤

测试方法:公开、无返回值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、常用注解

在这里插入图片描述
4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作用:
每个测试方法都需要一个独立的通信管道,那么可以把创建socket代码放到中Before中,在After中关闭

测试方法共用同一个通信管道:创建socket代码放到BeforeClass中

六、反射

一、需求引出反射

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

二、反射机制

在这里插入图片描述
在这里插入图片描述

三、反射相关类

在这里插入图片描述
在这里插入图片描述

四、反射优点

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、反射分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Class类常用方法

在这里插入图片描述

在这里插入图片描述

七、获取Class类对象(主要四种)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

八、反射的动态加载

在这里插入图片描述

在这里插入图片描述

九、类加载三个阶段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

十、暴力反射

1、创建实例

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、操作属性

在这里插入图片描述

在这里插入图片描述

3、操作方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、反射

1、获取Class对象

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、获取构造器对象constructor

在这里插入图片描述

构造器私有:Declared

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、构造器对象的作用

在这里插入图片描述
在这里插入图片描述

4、获取成员变量对象

成员变量私有:获取成员变量:Decalared
为成员变量get/set:setAccessiable

在这里插入图片描述

在这里插入图片描述

get():获取name的值
在这里插入图片描述

5、获取类的成员方法

获取私有方法:Declared
触发私有方法:setAccessible

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、反射应用(获取任意对象的字段值)

在这里插入图片描述

在这里插入图片描述

制作框架:
在这里插入图片描述

在这里插入图片描述

七、注解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、元注解:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

九、解析注解

在这里插入图片描述

1、解析Demo类上的MyTest4注解:c.getDecalredAnnotation()

在这里插入图片描述

2、解析test1方法上的MyTest4注解:m.getDeclaredAnnotation()

解析方法,需要先拿到方法对象!!!
在这里插入图片描述

3、模拟Junit框架

在这里插入图片描述
在这里插入图片描述

十、动态代理

在这里插入图片描述
在这里插入图片描述
导包:reflect反射包下的Proxy类
static类型的方法
返回类型为Star,返回实现Star接口的对象
newIntance返回的是Object,因此强转为Star类型的代理对象
参数一:获取当前类的类加载器
参数二:通过接口数组告诉代理,代理该长什么样子;Star.class: Star类型的接口

代理工具类:
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值