随笔分类 - 后端
摘要:takeWhile 有序的集合中使用 从 Stream 中获取⼀部分数据, 返回从头开始的尽可能多的元素, 直到遇到第⼀个false结果, 如果第⼀个值不满⾜断⾔条件,将返回⼀个空的 Stream dropWhile 有序集合中使用 从 Stream 中获取⼀部分数据, 遇到第⼀个false结果,则
阅读全文
摘要:jdk9之前创建只读集合 public class Main { public static void main(String[] args)throws Exception { List<String> list = new ArrayList<>(); list.add("SpringBoot课
阅读全文
摘要:增强try-with-resource 在JDK9中,改进了try-with-resources语句,在try外进⾏初始化,在括号内引⽤,即可实现资源⾃动关闭,多个变量则⽤分号进⾏分割 不需要声明资源 out 就可以使⽤它,并得到相同的结果 代码案例 public class Main { publ
阅读全文
摘要:代码案例 public interface OrderPay { void pay(); default void defaultPay(){ privateMethod(); } //接口的私有方法可以在Jdk9中使用 private void privateMethod(){ System.ou
阅读全文
摘要:从java9开始,jdk引⼊了交互式 REPL(Read-Eval-Print-Loop,读取-求值-输出-循环) 官⽅⽂档 进入jshell # 打开cmd jshell 帮助命令 jshell> /help | 键入 Java 语言表达式, 语句或声明。 | 或者键入以下命令之一: | /lis
阅读全文
摘要:jdk7之前的操作 public static void main(String[] args) throws IOException { String path = "/Users/jack/Desktop/t.txt"; test(path); } private static void tes
阅读全文
摘要:JVM 种类有很多,⽐如 Oralce-Sun Hotspot, Oralce JRockit, IBM J9, Taobao JVM,Hotspot有MetaSpace,JRockit以及J9是没有这个区域 JVM内存知识 在JDK8之前的HotSpot JVM,有个区域叫做“永久代(perman
阅读全文
摘要:需求描述:电商订单数据处理,根据下⾯的list1和list2 共11个订单 统计出同时被两个⼈购买的商品列表(交集) 统计出两个⼈购买商品的差集 统计出全部被购买商品的去重并集 统计两个⼈的分别购买订单的平均价格 统计两个⼈的分别购买订单的总价格 代码案例 public class VideoOrd
阅读全文
摘要:作⽤:可以⼀个⽅法把统计相关的基本上都完成 分类 summarizingInt summarizingLong summarizingDouble 案例 # 统计学⽣的各个年龄信息 public class Main { public static void main(String[] args)
阅读全文
摘要:partitioningBy分组 案例 # 根据list⾥⾯进⾏分组,字符串⻓度⼤于4的为⼀组,其他为另外⼀组 public class Main { public static void main(String[] args) throws Exception { List<String> lis
阅读全文
摘要:collect()⽅法的作⽤ ⼀个终端操作, ⽤于对流中的数据进⾏归集操作,collect⽅法接受的参数是⼀个Collector 有两个重载⽅法,在Stream接⼝⾥⾯ //重载⽅法⼀ <R> R collect(Supplier<R> supplier, BiConsumer<R, ? super
阅读全文
摘要:并⾏流parallelStream 集合做重复的操作,如果使⽤串⾏执⾏会相当耗时,因此⼀般会采⽤多线程来加快, Java8的paralleStream⽤fork/join框架提供了并发执⾏能⼒ 底层原理 线程池(ForkJoinPool)维护⼀个线程队列 可以分割任务,将⽗任务拆分成⼦任务,完全贴合
阅读全文
摘要:简介 Stream 中⽂称为 “流”,通过将集合转换为这么⼀种叫做 “流”的元素队列,通过声明性⽅式,能够对集合中的每个元素进⾏⼀系列并⾏或串⾏的流⽔线操作 元素是特定类型的对象,所以元素集合看作⼀种流, 流在管道中传输, 且可以在管道的节点上进⾏处理, ⽐如 排序,聚合,过滤等操作 数据元素便是原
阅读全文
摘要:简介 ⽅法引⽤是⼀种更简洁易懂的lambda表达式,操作符是双冒号::,⽤来直接访问类或者实例 已经存在的⽅法或构造⽅法 通过⽅法引⽤,可以将⽅法的引⽤赋值给⼀个变量 语法:左边是容器(可以是类名,实例名),中间是" :: ",右边是相应的⽅法名 静态⽅法,则是ClassName::methodNa
阅读全文
摘要:Function接⼝ Lambda表达式必须先定义接⼝,创建相关⽅法之后才可使⽤,这样做⼗分不便,其实java8已经内置了许多接⼝, 例如下⾯四个功能型接⼝,所以⼀般很少会由⽤户去定义新的函数式接⼝ Java8的最⼤特性就是函数式接⼝,所有标注了@FunctionalInterface注解的接⼝都是
阅读全文
摘要:定义⼀个函数式接⼝ 需要标注此接⼝ @FunctionalInterface,否则万⼀团队成员在接⼝上加了其他⽅法则容易出故障 编写⼀个⽅法,输⼊需要操做的数据和接⼝ 在调⽤⽅法时传⼊数据 和 lambda 表达式,⽤来操作数据 案例:定义⼀个可以使⽤加减乘除的接⼝ # 自定义接口 @Functio
阅读全文
摘要:jdk8之前创建线程 public class Main { public static void main(String[] args) throws Exception { new Thread(new Runnable() { @Override public void run() { Sys
阅读全文
摘要:作用 主要解决的问题是空指针异常(NullPointerException) 本质是⼀个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空 of() # null 值作为参数传递进去,则会抛异常 import java.util.Optional; public class
阅读全文
摘要:JDK8之前:SimpleDateFormat来进⾏格式化,但SimpleDateFormat并不是线程安全的 JDK8之后:引⼊线程安全的⽇期与时间DateTimeFormatter 案例 import java.time.Duration; import java.time.LocalDateT
阅读全文
摘要:核心类 LocalDate:不包含具体时间的⽇期。 LocalTime:不含⽇期的时间。 LocalDateTime:包含了⽇期及时间。 LocalDate 常⽤API //getYear() int 获取当前⽇期的年份 //getMonth() Month 获取当前⽇期的⽉份对象 //getMon
阅读全文
浙公网安备 33010602011771号