对groupingBy的结果做缩减(flatMap a groupingBy result)
收集器与多级缩减示例。 IntBox.java 对于类似IntBox(有属性为集合)的对象的集合List<IntBox>,常有需要获得Map<String, List<Integer>>这样的数据结构。 考虑到name可能重复,所以不可以使用toMap(Function&...
概述clone方法位于Object中,该方法用于创建并返回此对象的一个副本。Object类是所有Java类的父类,因此所有的Java类都继承了clone方法,该方法的访问控制修饰符为protected。 需要注意的是,想要调用该方法,被复制的对象的类必须实现java.lang.Cloneable接口。如果没有实现...
Builder模式建造者模式属于创建型模式,通常用于组装具有复杂结构的实例。 实现 登场角色 Builder(建造者):负责定义用于生成实例的接口。ConcreteBuilder(具体的建造者):负责实现Builder角色的接口的类。Director(监工):负责使用Builder角色的接口的类。 建造者模...
博客目前使用的SSL证书是免费的Let’s Encrypt。Let’s Encrypt的证书有效期是3个月,可以通过certbot renew来更新证书,但是只会更新还有30天才会过期的证书。 为了避免新添加域名,或是给证书更新时敲一堆命令,可以尝试使用Acme来申请、维护从letsencrypt生成的免费的...
先来回顾一下默认堆的大小。 操作系统及JVM类型 Xms Xmx Linux 32位 Client 16MB 256MB Linux 32位 Server 64MB 取1GB和物理内存大小1/4二者中的最小值 Linux 64位 Server 取512MB和物理内存大小1/64二者中的最小值...
Young GC过程 Young Generation Eden Survivor(Survivor1 & Survivor2) Old Generation JVM将堆划分为新生代、老年代,新生代又被划分为Eden区、Survivor1区、Survivor2区(两个Survivor区相对地作为 ...
Java内存模型Java内存模型在Java Virtual Machine Specification, in the chapters “2.5 Runtime Data Areas” and “2.6 Frames”中有详细的说明。对象和类的数据存储在3个不同的内存区域:堆(heap space)、方法区(m...
指令重排序指令重排序是 JVM 为了优化指令,提高程序运行效率,在不影响 单线程 程序执行结果的前提下,尽可能地提高并行度。 重排序分为两类: 编译期重排序 运行期重排序 编译期重排序的典型就是通过调整指令顺序,在不改变程序语义的前提下,尽可能减少寄存器的读取、存储次数,充分复用寄存器的存储值。假设第一条指...
Singleton模式当我们想在程序中表示某个东西只会存在一个时,就会有“只能创建一个实例”的需求。 确保任何情况下都绝对只有一个实例 在程序上表现出“只存在一个实例” 确保只生成一个实例的模式被称为Singleton模式。 实现要保证“只有一个实例”,可以在每次调用时去判断是否已经有这个单例,如果有则返回...
原文链接译文转载自 并发编程网 – ifeve.com 准备深入学习Netty,所以抽空复习下NIO在原译文基础上修改了部分错别字,以及修正了有误的代码示例 Java NIO 概述Java NIO 由以下几个核心部分组成 Channels Buffers Selectors Channel 和 Buff...
第 7 页 / 共 8 页