05 2020 档案
高效 告别996,开启java高效编程之门 5-2实战Optional使用
摘要:1 重点: 1.1 本节demo中的Optional是java8中Optional不是guava中的(guava中也有Optional) 1.2 demo1三种创建Optional的方式(为空对象,非空对象,任意对象) 1.3 demo2使用Optional的方法(map,filter,flatMa
阅读全文
高效 告别996,开启java高效编程之门 5-1Guava开场
摘要:1 重点: 1.1 Guava工具集简介 1.2 Guava 和jdk8如何避免null 2 Google Guava 工具集简介 Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O等等。所有这些工具每天都在被G
阅读全文
高效 告别996,开启java高效编程之门 4-6本节总结
摘要:1 重点: 1.1 本节总结 2 本节总结
阅读全文
高效 告别996,开启java高效编程之门 4-5TWR进阶与特殊情况
摘要:1 重点: 1.1 TWR简介 1.2 class反编译查看TWR方式关闭物理流资源 2 TWR简介 ◆Java7引入新特性◆优雅关闭资源◆一种Java语法糖 3 class反编译查看TWR方式关闭物理流资源(idea内置工具class反编译) // // Source code recreated
阅读全文
高效 告别996,开启java高效编程之门 4-4TWR方式关闭流资源
摘要:1 重点: 1.1 TWR方式关闭物理资源 2 TWR方式关闭物理资源demo package com.imooc.zhangxiaoxi.resource; import org.junit.Test; import java.io.*; /** * FileCopyTestNew * * @au
阅读全文
高效 告别996,开启java高效编程之门 4-3传统方式关闭流资源
摘要:1 重点: 1.1 关闭输入流输出流顺序 1.2 demo对比,本节目的:展现传统关闭流方式的繁琐 1.3 demo对比自己错误,字节读取的时候用while循环 1.4 demo对比自己错误,输入流输出流的创建 fileInputStream = new FileInputStream("lib2/
阅读全文
高效 告别996,开启java高效编程之门 4-1普通码农与风骚码农资源关闭PK
摘要:1 重点: 1.1 资源关闭对比(jdk1.7及1.7以上) 2 demo对比 package com.imooc.zhangxiaoxi.resource; import com.imooc.zhangxiaoxi.lambda.file.FileConsumer; import org.juni
阅读全文
高效 告别996,开启java高效编程之门 4-2垃圾回收与物理资源释放
摘要:1 重点: 1.1 垃圾回收的特点 1.2 何种资源需要手动回收 1.3 物理资源不回收的后果 2 垃圾回收的特点 ◆垃圾回收机制只负责回收堆内存资源,不会回收任何物理资源 ◆程序无法精确控制垃圾回收动作的具体发生时间 ◆在垃圾回收之前,总会先调用它的finalize方法 3 何种资源需要手动回收
阅读全文
高效 告别996,开启java高效编程之门 3-29实战案例五:排序
摘要:1 重点: 1.1 多维度排序 thenComparing(详见实战案例) 1.2 Comparator.reverseOrder()的应用 2 排序demo 排序demo需求: 股票撮合交易,优先按照价格高的排序,在按照时间早的,再按照交易量大的,在按照先机构后个人的方式 测试类: package
阅读全文
高效 告别996,开启java高效编程之门 3-28实战案例四:分组
摘要:1 重点: 1.1 定义map类型的方法(详见实战案例) 1.2 Optional方法非空方法的使用 1.3 分组方法的应用(详见实战案例) 2 分组demo 分组demo需求: 给出一部分订单号,按照这些订单定的账号分组进行查询 测试类: package com.imooc.zhangxiaoxi
阅读全文
高效 告别996,开启java高效编程之门 3-27实战案例三:扁平化
摘要:1 重点: 1.1 扁平化demo 1.2 当使用对象的distinct方法时:需要重写equals和hashcode方法(用lombok的标签@Data@AllArgsConstructor不需要重写方法): 1.3 扁平化同样使用于集合,不单单用于拆字 2 扁平化demo 查找demo需求: 用
阅读全文
高效 告别996,开启java高效编程之门 3-26实战案例二:去重
摘要:1 重点: 1.1 去重demo 1.2 当使用对象的distinct方法时:需要重写equals和hashcode方法(用lombok的标签@Data@AllArgsConstructor不需要重写方法): 1.3 equals和hashcode的必要关系 两个对象相等,hashcode一定相等
阅读全文
高效 告别996,开启java高效编程之门 3-25实战案例一:查找
摘要:1 重点: 1.1 设计思路:用anyMatch 不是 findAny 2 查找demo 查找demo需求: 多个学生有多门课程,查找出缺考的学生姓名 测试类: package com.imooc.zhangxiaoxi.stream.cases; import lombok.AllArgsCons
阅读全文
高效 告别996,开启java高效编程之门 3-23汇总操作实战案例
摘要:1 重点: 1.1 collect demo 1.2 merge方法(见demo中并行计算逻辑) 1.3 并行计算方法 1.4 lombok的优缺点 http://blog.itpub.net/69908877/viewspace-2676272/ 2 merge方法(结合demo) merge是说
阅读全文
高效 告别996,开启java高效编程之门 3-24收集器接口讲解
摘要:1 重点: jdk为我们提供的规约和汇总操作, 本节主要讲了规约和汇总两个操作的具体逻辑和细节。 2 收集器接口原理: 一般不建议并行做自定义操作的逻辑,涉及到的点比较多,比如(线程、原子性)等。
阅读全文
高效 告别996,开启java高效编程之门 3-22汇总操作原理讲解
摘要:1 重点: 2 汇总此操作原理: 返回一个集合
阅读全文
高效 告别996,开启java高效编程之门 3-21规约操作实战案例
摘要:1 重点: 1.1 reduce demo组成 1.2 准备数据 1.3 并行计算 2 规约操作实战案例 测试类: package com.imooc.zhangxiaoxi.stream; import com.alibaba.fastjson.JSONObject; import com.goo
阅读全文
高效 告别996,开启java高效编程之门 3-20规约原理讲解
摘要:1 重点: 1.1 规约汇总区别 2 规约(reduce)与汇总(collect) 对比 规约:将Stream流中的元素转化为一个值 汇总:将Stream流中的元素转化为一个容器 3 规约(reduce)原理 max(),min(),sum() reduce接口参数:
阅读全文
高效 告别996,开启java高效编程之门 3-18本章总结
摘要:1 重点: 1.1 2.3,2.5,2.6,2.7 2 本章总结: 2.1 传统集合处理方式和lambda表达式对比 2.2 介绍了流的简介 2.3 流与集合的区别 2.4 流的组成:数据源,中间操作和终端操作 2.5 中间操作分为无状态和有状态,终端操作分为短路和非短路;以及他们的案例 2.6 流
阅读全文
高效 告别996,开启java高效编程之门 3-17实战案例预定义收集器
摘要:1 重点: 1.1 Collectors方法之 流转集合,分组,分区的案例应用 2 demo之流转集合(toCollectors): demo: /** * toList * 案例1:流转换为集合 * 注意:可以用Collectors.toList /toSet/ toMap 等转换成不同的集合 *
阅读全文
高效 告别996,开启java高效编程之门 3-16收集器与预定义收集器概述
摘要:1 重点: 1.1 collect /Collect /Collectors的区别 2 收集器概述: 2.1 收集器的作用:将流中的元素累积成一个结果 2.2 作用于终端操作collect上 2.3 collect/Collector/Collectors 的区别 collect是流收集的一个方法,
阅读全文