摘要:
一、概述 每个方法被执行的时候,Java 虚拟机都会同步创建一个栈帧用于存放局部变量表、操作数栈、动态链接、方法出口等信息,在栈帧中与 Jvm 指令关系最密切的就是局部变量表和操作数栈,所以在介绍 Jvm 指令之前,我们先了解一下栈帧中最重要的两个内存区域 1.1、操作数栈 Jvm 是基于堆栈结构模 阅读全文
摘要:
解决方案 : 将 Shared build process heap size(Mbytes) 选项值设置大一些,默认值为 700,这里改为 2000 阅读全文
摘要:
一、概述 单例模式涉及到一个类,该类负责创建自身的对象,并且每次创建出来的对象都是同一个,同时对外提供获取该类唯一对象的方法 二、分类 单例模式分为两种 1、懒汉式 : 类加载的时候便会创建该类的对象 2、饿汉式 : 类加载的时候不会创建对象,只有在使用的时候才会去创建该类的对象 三、案例 3.1、 阅读全文
摘要:
一、概述 流式思想(Stream)类似于工厂车间的生产流水线,Stream 流不是一种数据结构,不保存数据,而是对数据进行加工处理,Stream 流可以看作是流水线上的一个工序,通过多个工序让一个原材料加工成一个商品 二、获取 Stream 流的常用方式 1、集合接口 Collection 的默认方 阅读全文
摘要:
一、方法概述 max : 获取最大值 min : 获取最小值 Optional<T> max(Comparator<? super T> comparator) max、min 方法参数类型为 Comparator 接口,利用比较器自定义排序 二、案例 public class StreamDemo 阅读全文
摘要:
一、方法概述 如果需要判断流中元素是否匹配指定的条件,可以使用 match 相关方法 allMatch : 所有元素是否都满足条件 noneMatch : 所有元素是否都不满足条件 anyMatch : 所有元素中是否有一个满足条件 二、案例 public class StreamDemo { pu 阅读全文
摘要:
一、方法概述 如果想要对流中元素进行去重可以使用 distinct 方法 二、案例 1、根据 hashcode 和 equal 进行去重 public class StreamDemo { public static void main(String[] args) { List<Person> p 阅读全文
摘要:
一、方法概述 如果需要对流中数据进行排序,可以使用 sorted 方法 Stream<T> sorted(): 根据元素的自然顺序排序 Stream<T> sorted(Comparator<? super T> comparator): 根据比较器指定的规则排序 二、案例 1、使用自然排序 sor 阅读全文
摘要:
一、方法概述 如果需要将流中的元素映射到另一个流中,可以使用 map 方法 <R> Stream<R> map(Function<? super T, ? extends R> mapper) 该接口需要一个 Function 函数式接口参数,可以将当前流中的 T 类型的流转换成另一种 R 类型的流 阅读全文
摘要:
一、方法概述 如果希望跳过前几个元素,可以使用 skip 方法获取一个截取之后的新流,如果流的当前长度大于 n,则跳过前 n 个,如果当前流的长度小于或等于 n,则返回一个空流 Stream<T> skip(long n) 二、案例 public class StreamDemo { public 阅读全文