复习:
1. 套接字---本质上是一套基于网络进行数据传输的API---UDP/TCP
2. UDP---基于流的。不需要建立连接,不可靠,传输速度比较快。需要对数据及封包,每个包不超过64k。---发送端和接收端---DatagramSocket
3. TCP---基于流的。需要建立连接,经过三次握手,可靠,传输速度比较慢。理论上不限制数据的大小。---客户端和服务器端---Socket、ServerSocket
反射
高内聚,低耦合---提高模块内的利用率;降低模块之间的依赖性
Class---代表字节码的类---代表类的类
Field---代表属性的类
Method---代表方法的类
Constructor---代表构造方法的类
Package---代表包的类
Annotation---代表注解的类
反射---剖析类,分析类的字节码,产生对应的字节码对象以及实例对象
如何获取一个Class对象?
1. 通过对象.getClass()的方式来获取这个对象对应的类的字节码对象
2. 通过类名.字节码的方法来获取这个类所对应的字节码对象
3. 通过Class.forName(类的全路径名);来获取这个类的字节码对象
Java是一门完全面向对象的语言---万物皆对象
int i = 5;
断言
预测结果
assert 结果预测 : 预测失败的提示;
JDK8的特性
接口中的默认方法
从JDK1.8开始,允许接口中定义实体方法,要求这个实体方法必须用default修饰;也允许接口中定义静态方法
Lambada表达式
(参数列表) -> 表达式;
(参数列表) -> {代码块};
Lambda表达式表示重写接口中的抽象方法
注意:当使用Lambda表达式来重写方法的时候,要求这个接口中只能有一个抽象方法。
Comparator Comparable Runnable FileFilter FilenameFilter Iterable
如果一个接口中只有一个抽象方法,可以把这个接口声明为一个函数式接口。