Java学习第七周总结

这一周学习了IO框架、网络编程、反射和JDK8特性。对这些部分做一个简单的概括。
IO框架
流是内存与存储设备之间传输数据的通道。流按方向可分为输入流、输出流,按单位可分为字节流、字符流,按功能可分为节点流、过滤流。
字节流的父类是字节输入流InputStream、字节输出流OutputStream,子类包括字节节点流、字节过滤流和对象字节流,过滤流具有缓冲功能,提高IO效率,减少访问磁盘的次数,对象流传输对象的过程称为序列化、反序列化。
字符流只能读写文本数据,父类是Reader、Writer,子类包括字符节点流、字符过滤流、桥转换流,桥转换流:InputStreamReader、OutputStreamWriter,可将字节流转换为字符流,可设置字符的编码方式。
File类代表物理盘符中的一个文件或者文件夹,包含了很多方法,FileFilter接口对获取文件进行过滤,满足条件的文件或文件夹才可保存下来。
网络编程
计算机网络是为实现资源共享和信息传递,通过通信线路连接起来的若干主机(Host),网络编程是让计算机与计算机之间建立连接、进行通信。网络模型包含七层,TCP/IP模型将协议分成四个层次,网络接口层、网络层、传输层、应用层。TCP是传输控制协议,建立连接、安全,比较麻烦。UDP协议是用户数据报协议,无连接,不安全。IP协议是互联网协议地址/网际协议地址,分为IPV4和IPV6。Port端口号:在通信实体上进行网络通讯的程序的唯一标识。InetAddress类表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。Socket编程:Socket(套接字)是网络中的一个通信节点,分为客户端Socket与服务器ServerSocket,通信要求:IP地址 + 端口号。
反射
类的对象是基于某个类new出来的对象,也称为实例对象。类对象是类加载的产物,封装了一个类的所有信息(类名、父类、接口、属性、方法、构造方法)。类的对象产生基于类对象。获取类对象的方法有三个:通过类的对象获取类对象,通过类名获取类对象,通过静态方法获取类对象。工厂设计模式主要负责对象创建的问题,可通过反射进行工厂模式的设计,完成动态的对象创建。单例模式只允许创建一个该类的对象,有三种方式。方式1:饿汉式(类加载时创建,天生线程安全),方式2:懒汉式(使用时创建,线程不安全,加同步),方式3:懒汉式(使用时创建,线程安全)。
JDK8特性
Lambda是允许把函数作为一个方法的参数(函数作为参数传递到方法中)。<函数式接口> <变量名> = (参数1,参数2…) -> { //方法体 }

注意事项:
新的操作符 ->(箭头操作符)
(参数1,参数2)->表示参数列表
->{ }方法体
形参列表的数据类型会自动推断
如果形参列表为空,只需保留()
如果形参只有1个,()可以省略,只要参数名字即可
如果执行语句只有1句,且无返回值,{}可以省略。
若有返回值,仍想省略{},return也省略。保证执行语句只有1句
Lambda表达式不会生成单独的内部类文件
lambda访问局部变量时,变量要修饰final,如果没加,会自动添加。

函数式接口
如果一个接口只有一个抽象方法,则该接口称为函数式接口。
为了确保接口达到要求,可以添加@FunctionalInterface注解。
内置四个核心函数式接口:
Consumer 消费型接口 void accept(T t);
Supplier 供给型接口 T get();
Function<T,R> 函数型接口 R apply(T t);
Predicate 断言型接口 boolean test(T t);

方法引用
方法引用是Lambda表达式的一种简写形式,如果Lambda表达式方法体中只是 调用一个特定的已存在的方法,则可以使用方法引用
使用 :: 操作符将对象或类和方法名的名字分隔开来。
对象::实例方法 //含义:对象调用了他的一个实例方法,如果调用的实例方法有参数,我们在往下调用他的函数接口实现时会传入相应的参数
注意:调用的方法参数列表与返回值类型,要与函数型接口中的方法参数列表与返回值类型一致

发布了24 篇原创文章 · 获赞 1 · 访问量 713

猜你喜欢

转载自blog.csdn.net/weixin_46286064/article/details/105008437