反射
1.什么是反射?
动态获取属性和方法的机制
2.反射的作用?
- 给定的一个类(Class)对象,通过反射获取这个类(Class)对象的所有成员结构。
- 给定的一个具体的对象,能够动态地调用它的方法及对任意属性值进行获取和赋值。
这种动态获取类的内容,创建对象、以及动态调用对象的方法及操作属性的机制为反射。即使该对象的类型在编译期间是未知,该类的 .class 文件不存在,也可以通过反射直接创建对象。
3.反射的优点以及缺点
优点:
1.反射和new 都能创建用户对象,并且调用里面的方法,但是反射是针对字符串编程,new是针对实体类编程
2.可以深入到类的内部结构,去做一些操作
缺点:
1.相较直接调用,在量大的情景下反射性能下降
2.存在内部暴露的安全隐患
4.反射的步骤
1.获取Class对象实例
2.通过Class获取构造函数,属性,方法,接口...
5.获取Class对象实例的方法
1.类名.class
2.对象.getClass();
3.Class.forName("完全限定的类名");
6.实现java反射机制的类
1.Class类:代表一个类
2.Field类:代表类的字段属性
3.Method类:代表类的方法
4.Constructor类:代表类的构造方法
网络编程
1.TCP与UDP的区别
TCP | UDP |
面向连接,可靠的数据传输 | 无连接的,不可靠的数据传输 |
数据安全,有校验 | 数据不安全,缺乏校验 |
速度慢 | 效率高 |
什么时候用TCP、什么时候用UDP
发送:音乐、视频、大文件使用UDP
对数据要求比较高的传输:TCP
2.UDP的通讯步骤
发送方:
1.创建DatagramSocket
2.创建DatagramPacket 参数:(数据,长度,目标主机地址,目标主机端口号)
3.调用socket对象的send(数据报对象)
4.关闭
接收方
1.创建DatagramSocket(端口),指定监听的端口
2.创建DatagramPacket(当作容器的字节数组,长度)
3.调用socket对象的receive(数据报对象)
4.显示数据
5.关闭
3.TCP的通讯步骤
客户端
1.创建Socket(目标主机地址,端口号)
2.封装socket的输出字节流得到缓冲字节流
3.使用缓冲字节流写入数据
4.清空缓存
5.关闭socket
服务端
1.创建SercerSocket(监听的端口)
2.使用serverSocket.accept()得到一个Socket对象
3.封装socket的输入字节流得到缓冲字节流
4.读取数据
5.关闭socket