随笔分类 - 高效编程
高效 告别996,开启java高效编程之门 5-4新集合类型MultiSet
摘要:1 重点: 1.1 3 Multiset简介 1.2 4 Multiset常用方法 1.3 6 多种Multiset的实现 2 新集合类型简介 Guava引入了很多JDK没有的、但明显有用的新集合类型。这些新类型是为了和JDK集合框架共存,而没有往、JDK集合抽象中硬塞其他概念。(如Multiset
阅读全文
高效 告别996,开启java高效编程之门 5-3不可变集合
摘要:1 重点: 1.1 3 不可变集合应用场景 1.2 7 demo之 JDK提供的方法实现不可变集合 demo 1.3 8 demo之 guava提供方法实现不可变集合 demo 1.4 8 demo之 guava提供方法实现不可变集合 guava依赖 2 不可变集合简介 创建对象的不可变拷贝是一项很
阅读全文
高效 告别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接口参数:
阅读全文