随笔分类 - Java
摘要:Optional提供很多有用的方法,这样我们就不用显式进行空值检测。 OptionalTest.java package com.klvchen.java4; import org.junit.Test; import java.util.Optional; public class Optiona
阅读全文
摘要:Stream的终止操作 终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如: List、Integer、甚至是 void。 流进行了终止操作后,不能再次使用。 方法 描述 allMatch(Predicate p) 检查是否匹配所有元素 anyMatch(Predicate p) 检查
阅读全文
摘要:Java8 中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是Stream API。 Stream API(java.util.stream)把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序
阅读全文
摘要:当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用! 方去引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。 要求:实现接口的抽象方法的参数列表
阅读全文
摘要:Lambda表达式 函数式 Functional 接口 只包含一个抽象方法的接口,称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda 表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明)。 我们可以在一个接口上使用 @Fun
阅读全文
摘要:代理设计模式的原理: 使用一个代理将对象包装起来,然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。 动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象。 动态代理使用场合: 1.调试 2
阅读全文
摘要:当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化 加载 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口(即引用地址)。所有需要
阅读全文
摘要:Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API 取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结
阅读全文
摘要:UDP UDPTest.java package com.klvchen.java1; import org.junit.Test; import java.io.IOException; import java.net.*; public class UDPTest { @Test public
阅读全文
摘要:Java 是 Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。 Java 提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的
阅读全文
摘要:Java NIO 概述 Java NIO (New IO,Non-Blocking IO) 是从 Java 1.4 版木开始引入的一套新的IO API,可以替代标准的 Java IO APi。NIO 与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基
阅读全文
摘要:IO 对象流 ObjectInputStream 和 OjbectOutputSteam 用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。 序列化: 用 ObjectOutputStream 类保存基本类型数据或对象的
阅读全文
摘要:标准的输入,输出流 * System.in 和 System.out 分别代表了系统标准的输入和输出设备 * 默认输入设备是: 键盘,输出设备是: 显示器 * System.in 的类型是 InputStream * System.out 的类型是 PrintStream,其是 OutputStre
阅读全文
摘要:转换流提供了在字节流和字符流之间的转换 Java API提供了两个转换流: InputStreamReader : 将 InputStream 转换为 Reader OutputStreamWriter : 将 Writer 转换为 OutputStream 字节流中的数据都是字符时,转成字符流操作
阅读全文
摘要:图片加解密 PicTest.java package com.klvchen.exer; import org.junit.Test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre
阅读全文
摘要:Java IO 原理 I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于如读/写文件,网络通讯等。 处理设备之间的数据传输。 Java程序中,对于数据的输入/输出操作以“流(stream)”的方式进行。 java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过
阅读全文
摘要:java.io.File类: 文件和文件目6径的抽象表示形式,与平台无关 File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果 需要访问文件内容本身,则需要使用输入/输出流。 想要在 Java 程序中表示一个真实存在的文件或目录,那么必须有一个 File 对象,但是 J
阅读全文
摘要:<?> 允许所有泛型的引用调用 通配符指定上限 上限 extends: 使用时指定的类型必须是继承某个类,或者实现某个接口,即<= 通配符指定下限 下限 super: 使用时指定的类型不能小于操作的类,即 >= Person.java package com.klvchen.java2; publi
阅读全文
摘要:User.java package com.klvchen.exer1; public class User { private int id; private int age; private String name; public User() { } public User(int id, i
阅读全文
摘要:什么是泛型 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在 JDK1.5 之前只能把元素类型设计为 Object,JDK1.5 之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的
阅读全文