DeathWhispers

Git 使用

Git 使用 git是目前流行的分布式版本管理系统。它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切换分支。git又使用了SHA-1哈希算法确保了在文件传输时变得不完整、磁盘损坏导致数据丢失时能立即察觉到。 git的基本工作流程: git clone: 将远程的Ma...

垃圾回收机制

垃圾回收机制 垃圾回收:指存于内存中、不会再被使用的对象,而回收就是清除这些失去引用的对象等。 垃圾回收有很多种算法:引用计数法、标记压缩法、复制算法、分代、分区的思想。 引用计数法:核心就是在对象被其他所引用时计数加1,而当引用失效时则减1.但是这种方式有非常严重的问题 无法计数循环引用的情况、还有就是每次进行加减操作比较消耗系统性能 标记清除法:就是分为标记和清除两个阶段进行处...

泛型中的T、E、K、V,还记得嘛

前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 泛型带来的好处 在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的”任意化”,”任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者...

聊聊TCP连接耗时的那些事儿

聊聊TCP连接耗时的那些事儿 原创张彦飞allen开发内功修炼2020-11-08 08:00 收录于话题#开发内功修炼之网络篇30个 在互联网后端日常开发接口的时候中,不管你使用的是C、Java、PHP还是Golang,都避免不了需要调用mysql、redis等组件来获取数据,可能还需要执行一些rpc远程调用,或者再调用一些其它restful api。 在这些调用的底层,基本都是在使...

垃圾回收器

垃圾收集器 在java虚拟机中,垃圾回收器有一下几种: 串行垃圾回收器 并行垃圾回收器 GMS回收器 G1回收器 串行回收器只有一个工作线程,对于并行能力较弱的计算机来说,穿行回收器的专注性和独占性往往有更好的表现 并行回收器在串行回收器基础上做了改进,他可以使用多个线程同时进行垃圾回收,对于计算能力强的计算机而言,可以呀有效的缩短垃圾 回收所需的实际时间 ParNew回收...

垃圾回收算法

垃圾收集算法 垃圾收集算法 垃圾收集算法 分代收集理论 复制算法 标记整理算法 标记清楚算法 分代收集理论 根据对象存活周期的不同将内存分为几块,一般将java分为新生代和老年代,这样就可以根据各个年代的特点选择合适的垃圾收集算法。 新生代 - 一般新生代中的对象存货周期很小吗,每次收集都会有大量的对象死去,所以选择复制算法,只需要付出少量对象的复制成本...

异常的处理顺序

异常的处理顺序 结语: (假设方法需要返回值) java 的异常处理中, 在不抛出异常的情况下,程序执行完 try 里面的代码块之后,该方法并不会立即结束,而是继续试图去寻找该方法有没有 finally 的代码块, 如果没有 finally 代码块,整个方法在执行完 try 代码块后返回相应的值来结束整个方法; 如果有 finally 代码块,此时程序执行到 try 代码块里的 ...

JVM常用的垃圾回收算法

JVM常用的垃圾回收算法 常用的GC算法 MarkSweep 标记清除算法 标记阶段:把垃圾内存标记出来清除阶段:直接将垃圾内存回收这种算法是比较简单的,但是会产生大量的内存碎片,可能导致大对象无法分配,并带来GC问题。 Copying 拷贝算法 将内存分为大小相等的两半,每次只使用其中一半。垃圾回收时,将当前这一块中存活的对象复制到另一半中,并将这一半全部清空。 没有内存碎...