
JAVA的进阶之路
文章平均质量分 57
java
我的棉裤丢了
我不懒!
展开
-
JAVA-方法引用-01
<1>通过对象名引用成员方法 ,使用前提是对象名是已经存在的,成员方法也是存在的定义一个函数式接口package Demo41;@FunctionalInterfacepublic interface Printable { public abstract void print(String s);}定义一个类以及其方法package Demo41;public class Demo01MethodRerObject { public void pri原创 2022-04-24 20:49:38 · 544 阅读 · 0 评论 -
JAVA-使用Stream流式思想处理数据
<1>java.util.stream.Stream<T> 是java8新加入的最常用的流接口,并非函数式接口获取流常用的方式: 所有的Collection集合都可以通过stream默认方法获取流: default Stream<E> stream() Stream接口的静态方法of可以获取数组对应的流 :static <T> Stream<T> of (T... values) 注意:Stream 流属于管道流,只能被使用一次,第.原创 2022-04-21 22:25:14 · 961 阅读 · 0 评论 -
JAVA-JDK中常用的函数式接口
JDK中提供了大量的函数式接口以丰富Lambda的典型使用场景,主要在java.util.function包。<1>Supplier接口Supplier<T> 接口仅包含一个无参的方法,T get(),用来获取一个泛型参数指定类型的对象数据 //该接口被称之为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据package Demo38;import java.util.function.Supplier;public class原创 2022-04-19 20:29:53 · 1232 阅读 · 0 评论 -
JAVA-函数式接口作为方法返回值的用法
package Demo38;import java.util.Arrays;import java.util.Comparator;//若是一个方法的返回值类型是函数式接口,那么就可以返回一个lambda表达式//这里当需要通过一个方法来获取Comparator接口类型的对象作为排序器时,就可以调用该方法获取public class Demo01Cmparator { public static Comparator<String> getComparator(){.原创 2022-04-19 19:34:57 · 1093 阅读 · 0 评论 -
JAVA-函数式接口作为函数参数的用法-日志性能优化
调用showLog方法,参数MessageBuilder是一个函数式接口,可以传递lambda表达式 使用lambda表达式作为参数传递,仅仅是把参数传递到showLog()方法中,只有满足条件,等级是1,才会调用接口MessageBuilder中的方法buildMessage,才会进行字符串的拼接 反之条件不满足,等级不是1,接口中的方法不会执行,不存在性能的浪费<1>定义一个接口用来拼接日志信息package Demo36;@FunctionalInterfacep.原创 2022-04-18 22:37:40 · 509 阅读 · 0 评论 -
JAVA-函数式接口作为函数参数的用法-概念
概念:有且仅有一个抽象方法的接口,称之为函数式接口 一般可以作为方法的参数和返回值类型<1>定义一个函数式接口package Demo35;@FunctionalInterface public interface Demo01MyFunctionalInterface {public abstract void method();}<2>接口实现类,重写抽象方法package Demo35;public class Demo...原创 2022-04-18 22:31:05 · 2169 阅读 · 0 评论 -
JAVA-文件上传案列实现
TCP通信的文件上传案列,即便是客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上,即是文件的复制,文件的下载是相同的原理。实现步骤:1、客户端使用本地的字节输入流,读取要上传的文件2、客户端使用网络字节输出流,把读取到的文件上传到服务器3、服务器使用网络字节输入流 ,读取客户端上传的文件4、服务器使用本地字节输出流,把读取到的文件,保存到服务器的硬盘上5、服务器使用网络字节输出流,给客户端回复上传成功6、客户端使用网络字节输入流,读取服务器回写的数据7、释放原创 2022-04-16 14:55:01 · 246 阅读 · 0 评论 -
JAVA-TCP通信客户端服务端-基础
package Demo34;/*java.net.Socket 实现客户端套接字Socket(String host,int port)成员方法:OutputStream getOutputStream() 返回套接字的输出流InputStream getInputStream() 返回套接字的输入流void close() 关闭次套接字客户端和服务端交互,必须使用Socket中提供的网络流,不能使用自己创建的对象流*/import java.io.IOException;im原创 2022-04-16 13:05:58 · 1047 阅读 · 0 评论 -
JAVA-打印流-基础
package Demo33;import java.io.FileNotFoundException;import java.io.PrintStream;public class Demo03PrintStream { public static void main(String[] args) throws FileNotFoundException { PrintStream ps = new PrintStream("D:\\a.txt"); p.原创 2022-04-15 20:11:49 · 401 阅读 · 0 评论 -
JAVA-序列化与反序列化流-基础
注意点:<0> ObjectOutputStream 对象的序列化流 把对象以流的方式写入文件中保存 继承自OutputStreamObjectInputStream 对象的反序列化流,会声明抛出ClassNotFoundException<1> 类通过java.io.Serializable接口启用序列化功能。没有实现此接口的类无法使其任何状态序列化和反序列化Serializable接口也叫标记性接口,要进行序列化和反序列化的类必须实现Serializable接口&.原创 2022-04-14 22:46:40 · 371 阅读 · 0 评论 -
JAVA-转换流-基础
package Demo32;import java.io.*;public class Demo01OutputStreamWriter { //字符流通向字节流的桥梁、 public static void main(String[] args) throws IOException{ write_utf8(); read_ut8(); } public static void write_utf8() throws IOExc.原创 2022-04-13 22:03:27 · 394 阅读 · 0 评论 -
JAVA-缓冲流-基础
//1、字符缓冲流package Demo31;import java.io.*;public class Demo02Copy { public static void main(String[] args) throws IOException { long s = System.currentTimeMillis(); BufferedInputStream bis = new BufferedInputStream(new Fi.原创 2022-04-13 21:47:45 · 336 阅读 · 0 评论 -
JAVA-字符流-基础
public class Demo03Reader { public static void main(String[] args) throws IOException { //方法一,每次读取一个字符 FileReader fr = new FileReader("D:\\a.txt"); int len = 0; while ((len=fr.read()) != -1){ System.out.prin.原创 2022-04-13 21:41:41 · 290 阅读 · 0 评论 -
JAVA-字节流-基础
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;//文件复制 一读一写public class Demo02OutputStream { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(".原创 2022-04-13 21:23:06 · 321 阅读 · 0 评论