摘要: fastjson fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean 依赖 <dependency> <groupId>com.alibaba</grou 阅读全文
posted @ 2020-11-18 21:01 柳小白 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 分层验证与JavaBean验证 Bean Validation简介 Bean Validation为Java Bean验证定义了相应的元数据模型和API JCP,JSR简介 JCP(Java Community Process)成立于1998年,是使有兴趣的各方参与定义Java的特征和未来版本的正式 阅读全文
posted @ 2020-11-18 21:00 柳小白 阅读(165) 评论(0) 推荐(0) 编辑
摘要: Lombok简介 Project Lombok是一个java库,可以自动插入编辑器并构建工具,为Java增添色彩 永远不要再写另一个getter或equals方法,只用一个注释,类就具有一个功能齐全的构建器,自动化日志记录变量等等。 Lombok实现原理 注解的两种解析方式 运行时解析 编译时解析 阅读全文
posted @ 2020-11-18 20:59 柳小白 阅读(83) 评论(0) 推荐(0) 编辑
摘要: new Thread和Executors实例 避免线程开启太多宕机 /** * @author fangliu * @date 2020-02-16 * @description 模拟多线将Word转换为PDF格式:处理时很长的耗时过程 */ public class ThreadVs { @Tes 阅读全文
posted @ 2020-11-18 20:57 柳小白 阅读(94) 评论(0) 推荐(0) 编辑
摘要: Google Guava 工具集简介 Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 使用和避免null 大多数情况下,使用null表明的是 阅读全文
posted @ 2020-11-18 20:56 柳小白 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 资源关闭优化前与优化后的对比 /** * @author fangliu * @date 2020-02-15 * @description 资源关闭优化前与优化后的对比 */ public class ResourceCloseVs { @Test public void oldFileHandl 阅读全文
posted @ 2020-11-18 20:54 柳小白 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 流是什么 Stream(流)是一个来自数据源的元素队列并支持聚合操作 元素队列:特定类型的对象形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源:流的来源。可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作:类似SQL语句一样的操作, 比 阅读全文
posted @ 2020-11-18 20:53 柳小白 阅读(413) 评论(0) 推荐(1) 编辑
摘要: 方法引用 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。 注意方法引用是一个Lambda表达式,其中方法引用的操作符是双冒号::。 有以下四种形式的方法 阅读全文
posted @ 2020-11-18 20:50 柳小白 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 自定义函数式接口 Lambda表达式需要函数式接口的支持 函数式接口定义:接口中只有一个抽象方法的接口,称为函数式接口。 可以使用注解 @FuncitonalInterface 修饰,其修饰作用为:限定该接口必须为函数式接口,即该接口中有且只有一个抽象方法。否则无法通过编译。即可以检查是否为函数式接 阅读全文
posted @ 2020-11-18 20:48 柳小白 阅读(122) 评论(0) 推荐(0) 编辑
摘要: lambda表达式演变 如果你想把一块代码赋给一个Java变量,应该怎么做呢? 比如把下面面右边的那块代码,赋给theCodeBlCock变量 theCodeBlCock = public void doSomething(String s){ System.out.println(s); } 在J 阅读全文
posted @ 2020-11-18 20:46 柳小白 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 函数编程演化历程 将业务代码直接写死代码里 将单一维度的条件作为参数传入方法中,方法内根据参数进行业务逻辑实现。 将多个维度的条件作为参数传入方法中,业务实现需要根据不同的参数处理不同的逻辑。 将业务逻辑封装为一个实体类,方法接受实体类为参数,方法内部调用实体类的处理逻辑。 调用方法时不再创建实体类 阅读全文
posted @ 2020-11-18 20:45 柳小白 阅读(182) 评论(0) 推荐(0) 编辑