线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。
Lambda表达式的标准格式为:小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。-> 是新引入的语法格式,代表指向动作。
大括号内的语法与传统方法体要求基本一致。(参数类型 参数名称) ‐> { 代码语句 }
Lambda 使用限制,只能用于函数式借口如Runnable 、 Comparator 接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,才可以使用Lambda。
文件的操作:
包括文件(文件夹)的新建。读和input方法,必须对应的文件存在才能执行,写和output方法对应的文件可以不存在,没有会自动创建。文件夹得创建为mkdir和mkadirs。遍历文件为list返回String数组。和listFiles返回一个文件数组。
递归的使用:
分为直接递归和间接递归两种,直接递归可以对文件进行遍历,删除等操作,以及一些数学上的计算。
递归一定要有条件限定,保证递归能够结束,不然容易出现死循环,造成栈内存溢出。循环次数也不能过多,不然也会出现栈内存溢出。构造方法不能使用递归。
IO:分为字节流和字符流两大类。字节流包括OutputStream和FileOutputStream两种。字符流包括,read和write两类,用于操作含有中文的文件读写,文件如果不希望被覆盖,可以在创建流时,在后面添加一个true值,让文件进行追加写。当流使用完时,一定要关流释放资源。字符缓冲区,buffered可以让文件的速度更快,而且多了readline和newline两种特有方法,判断语句为((len =r.read(bytes))!=null)。
转换流,OutputStreamWriter,InputStreamReader主要用于处理编码格式不一致的问题。系统自带的文件一般编码为GBK ,idea的默认编码为UTF-8,有些文件不处理的话会显示乱码,达不到预期的目的。
序列化ObjectOutputStream和反序列化,主要是将对象存储到文件和读取文件的内容,类必须实现Serializable接口。另外,当JVM反序列化对象时,能找到class文件,但是class文件在序列化对象之后发生了修改,那么反序列化操作也会失败,抛出一个 InvalidClassException 异常。
网络编程。 有协议,端口号,IP地址3要素。服务器Seversocket,对象调用accept方法获得socket对象,和客户端进行通信。当客户端需要上传文件时,如果使用了while循环,需要在循环结束后加上shutdownOutput方法,表示文件已经传输完毕,服务器才能,结束接收,不然会造成阻塞。
|
|