《Java8实战》
文章平均质量分 92
《Java8实战》学习笔记
七海健人
打工战士,闲暇之余把自己的学习和总结记录下,也希望写的东西能帮助到你
展开
-
《Java8 实战》笔记——4.CompletableFuture-组合式异步编程
第 11 章completableFuture组合式异步编程Future/CallableFuture接口可以构建异步应用,是多线程开发中常见的设计模式;当我们需要调用一个函数方法时,如果这个函数执行很慢,那么我们就要进行等待;但有时候,我们可能并不急着要结果;因此,我们可以让被调用者立即返回,让他在后台慢慢处理这个请求;对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获取需要的数据(或者回调);(图)sync模式 & async模式区别原创 2022-03-22 14:17:54 · 1444 阅读 · 0 评论 -
《JDK8 实战》笔记——1.Lambda&Stream流库
《Java8 实战》第 1 章为什么关心JAVA 8 ?——改变很多,改变影响很大;简洁代码-Lambda,多核并行-Stream,线程与锁;流处理,将不相关的操作分别交给多个CPU内核并行执行; 把代码作为参数传递给方法; 并行-共享数据,对于流的并行,需要输入"纯函数",不能多个进程同时访问该共享变量,因此用"代码替换对象"; 对集合的操作,更多的关注"做什么"而不是给出Iterator遍历集合元素的过程; 编程的目的在于操作值(对象),方法/类看做是次要的/辅助的,现在将方法/La原创 2022-03-22 12:43:24 · 320 阅读 · 0 评论 -
《Java8 实战》笔记——2.并行流ParallelStream&ForkJoin原理
第 7 章并行数据处理与性能——流内部的工作原理;性能比较测试// 输出CPU的核心数@Testpublic void func_01() { System.out.println(Runtime.getRuntime().availableProcessors());//打印CPU核心数量-6核}并行流和串行流的互相转换:@Testpublic void func_02() {//串行/并行流的互相转换-例如求和,比较一下性能 //1.转化的方法.parallel原创 2022-03-22 12:47:41 · 1423 阅读 · 0 评论 -
《Java8 实战》笔记——3.重构&优化&Optional
第 8 章重构、测试和调试改善代码?集合类的操作→stream; 匿名类->Lambda表达式(注意:匿名类的this指匿名类自身,而lambda的this指的是lambda"对象"(把lambda看做成员变量)所在的类,因此Lambda{...}内部不能定义与外部相同名字的变量,会编译错误)eg:{... int a = 10; Runnable r = new Runnable(){int a = 10;...} //**编译错误**}方法引用代替{...}中原创 2022-03-22 14:13:21 · 379 阅读 · 0 评论 -
《JDK8实战》笔记——0.引言-行为参数化&函数式接口
GitHub源码:https://github.com/alexandregama/java8-guides-tutorialsGitHub的JDK8 Demo主要包含两点:Lambda表达式的使用(几个JDK函数式接口类); Stream()的使用;函数式接口? @FunctionalInterface public interface RealFunctionalInterface { // 唯一的抽象方法 void d.原创 2022-03-22 12:35:16 · 210 阅读 · 0 评论 -
《Java8 实战》笔记——5.JDK8日期类&新增API补充
//1.4 ArraysSS**//1.5 String**为什么需要新的API?在Java8之前,由于JDK本身设计的问题,导致了存在的时间日期API使用起来不是很好用(Date类:赋值的语义不直观、toString的返回值包含JVM的默认时区CET;Calendar类:月份依旧从0计算、与Date共存难以选择;最大的问题是:本身可变难以维护、格式化时间DateFormat不是线程安全的),其语义也不是很好,比如Date表示的是时间以及日期,为了使得时间日期相关的API操作起来比较方便,语原创 2022-03-22 14:25:33 · 396 阅读 · 0 评论