SSL Certificate RSAx.509Format of public key certificate standard. Contains public key along with other information depicting the issuer etc., DERBinary encoding format to store data, not only x.509 but also PKCS8 in 2022-09-06 operation #security
Asynchronization Mode 异步模型 引入了另一个线程,专门用来做等待的工作,这样就把主线程解放了出来. 而根据这个异步线程是否要处理主线程的逻辑,又可以将异步模型分为两种不同的模型我讲这两个模型称为 代理模型 与 非代理模型 异步非代理模型在该模型中,主线程向异步线程提交任务后就可以继续做自己的事情去了,这个异步线程会返回一个引用到最终结果的对象,在Java中叫做Future,在Javascript中被称为Promise. 2021-12-31 development #java #asynchronization
Synchronization Mode 同步模型 是一种最基本的传统计算模型.基本特征就是,主线程必须要停下来,等待外部调用返回,然后才能继续执行主线程的代码. 1234567891011121314public class Main { private static String externalService() throws InterruptedException { Thread.sleep(50 2021-12-31 development #java #asynchronization
Concurrent Mark Sweep algorithm CMS是一个针对 #老生代 的 #并发 #分代收集器从这一收集器开始,我们迈入了 #并发 时代,就是说,某些时刻用户线程和GC线程可以一起运行.本收集器可以和 [[Parallel New]]一起使用 1java -XX:+UseConcMarkSweepGC -jar Main.java 收集器是以获取最少的 #STW ,它在垃圾收集时使得用户线程和 GC 线程并发执行,因此在垃圾收集过程 2021-09-26 development #jvm #gc
Core Issue of GC 垃圾回收的理念确实非常棒,但判断一个垃圾回收算法和垃圾回收器优劣应该有以下几个标准. 应用程序暂停的时间#STW 砸瓦鲁多是GC中的一个专有名词,特指为了使得内存状态稳定,需要将所有应用线程全部停下,这期间GC线程进行工作.短暂的STW可能不会让用户察觉到,但长时间的STW会导致极差的用户体验,是一个GC算法和收集器应该极力避免的. 即一次GC所导致的 #STW 时间应该尽量少.例如 #ZGC 收 2021-09-26 development #java #jvm #gc
Garbage First algorithm G1即垃圾优先收集器,理念是以不完全的GC来降低的 #STW尽管G1收集器有分代的概念,但本质上是一个 #分区收集器 在整个堆中,以一个大小的单位分割成很多小的规则的块.和其他例如[[Serial]], [[Parallel Scavenge]]等收集器不同,G1中的 #新生代 和 #老生代 并不是连续的,而是散落开的,一块一块散落在整个堆里 因此每次回收不需要扫描整个堆,而只需要查看几个需要 2021-09-26 development #jvm #gc
Garbage Collector Overview 上图展示了不同垃圾收集器之间的可组合关系. G1 ZGC Shenandoah Parallel Scavenge Parallel Old Parallel New Serial CMS 2021-09-26 development #jvm #gc
Java Reference Type 从Java 1.2版本开始引入了java.lang.ref这个包,里面定义了总共三种引用类型 虚引用 弱引用 软引用 接下来我们把Java中所有的引用可能性都来讲解一遍.顺序是从最弱到最强. 无引用如字面意思,就是说这个对象,完全没有任何引用能访问到它,因此该对象可以被GC. 12345// 分配内存var o = new Object();// 从此开始该对象就不再有引用可以访问到它o = 2021-09-26 development #java
Mark Compact algorithm 和 #mark-sweep 一样 首先需要 #STW 从 #gcroot 出发遍历所有对象,将不可达的对象标记上 然后将标记过的对象全都进行回收 #STW 将剩下的存活对象整理好并排布在内存的前端 #mark-compact 的特点就是可以消除内存碎片问题,大幅提高内存完整度,但也正因为这个整理的操作,该算法需要更多 #STW 来整理内存,并将原来的引用指向新的对象地址 2021-09-26 development #jvm #gc
Mark Copy algorithm 某些文档里会称copy为 #scavenge 和 #mark-sweep #mark-compact 两个算法不太一样的是,在 #mark-copy 算法中,我们将内存我们需要操作的内存分成两个区域,分别称为from和to区域,但其实他们的意义和名字 并没有直接关系,因为他们两个是等价的,只使用名字做一个区分而已. 因此有的文档上也将这两个区域称为survivor 1和survivor 2,统称 2021-09-26 development #jvm #gc