Java 垃圾收集二 算法 发表于 2019-10-29 | 分类于 JVM 字数统计: 4.1k 从如何判定对象消亡的角度出发,垃圾收集算法可以划分为 引用计数式垃圾收集(Reference Counting GC)和 追踪式垃圾收集(Tracing GC)两大类。本文介绍的均属于追踪式垃圾收集的范畴。 阅读全文 »
Java 垃圾收集一 背景 发表于 2019-10-28 | 分类于 JVM 字数统计: 9.4k Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的墙,墙外面的人想进去,墙里面的人想出来。 阅读全文 »
Java 运行时数据区域 发表于 2019-10-25 | 分类于 JVM 字数统计: 6.7k Java 虚拟机在执行程序的过程中,会把它管理的内存划分为若干个数据区域,这些区域的用途不一,有着各自的创建和销毁时间。有些区域与虚拟机进程共存,有些区域则依赖用户线程。 阅读全文 »
RSA 加密算法的实现原理 发表于 2019-09-20 | 分类于 数据结构与算法 字数统计: 7.6k RSA 加密算法 是一种非对称加密算法,在公开密钥加密中被广泛使用。RSA 是 1977 年由 Ron Rivest、Adi Shamir、Leonard Adleman 一起提出的,RSA 就是他们三人姓氏的开头字母。 阅读全文 »
虚拟内存 发表于 2019-06-05 | 分类于 计算机系统 字数统计: 14k 一个系统中的进程是与其它进程共享 CPU 和内存资源的。然而,共享内存会形成一些特殊的挑战。如果有太多的进程占用内存,内存很快就会被占满,当一个新来的进程没有内存空间可用时,那它就无法运行。内存中的数据还很容易被破坏,例如,当某个进程不小心写了另一个进程使用的内存,原来的数据就被覆盖,这可能会导致非业务逻辑上的程序错误,这些错误往往都难以定位原因。为了更加有效地管理内存并且减少出错,现代操作系统提出了一个抽象的概念,叫做虚拟内存(Virtual Memory)。 阅读全文 »
计算机的存储器系统 发表于 2019-04-19 | 分类于 计算机系统 字数统计: 3.9k 按照冯·诺伊曼设计的计算机模型,CPU 执行指令,存储器系统负责存放 CPU 执行的指令和数据。在现代计算机中,存储器系统由不同容量、不同成本、不同访问时间的各级存储器组成。为什么要这样设计呢? 阅读全文 »
浮点数在计算机中的表示 发表于 2019-03-29 | 分类于 计算机系统 字数统计: 15k 现实世界中不仅有整数,还有小数,有没有一种编码,能同时表示它们呢。IEEE 754 是 20 世纪 80 年代以来最广泛使用的浮点数运算标准,为许多 CPU 与浮点运算器所采用,简单来说,它采用了类似科学记数法的形式来表示整数和小数。该标准的设计者,William Morton Kahan 教授在 1989 年获得图灵奖。 阅读全文 »
整数在计算机中的表示 发表于 2019-03-28 | 分类于 计算机系统 字数统计: 3.5k C 语言中编码整数有两种不同的方式,一种只能表示非负数,也称为无符号数;另一种能够表示负数、零和正数,称为有符号数。而 Java 语言中没有无符号数,所有的整数都是有符号数。 阅读全文 »
聊聊内网穿透 发表于 2019-02-28 | 分类于 网络 字数统计: 10k 最近在开发支付系统,在和第三方支付渠道联调时碰到一个问题:我的电脑是在公司的内网中,无法收到渠道发出的异步回调通知。要想解决这个问题,就需要进行内网穿透,于是在内网穿透工具 frp 的帮助下,成功的解决了这个问题。 阅读全文 »
Observer 发表于 2019-02-13 | 分类于 设计模式 字数统计: 13k 看过直播的同学都知道,直播房间里有个订阅按钮,当你点击订阅之后,下次主播再开播时你就能在第一时间收到通知,以免你错过精彩内容。这就是观察者模式的一种经典应用。 阅读全文 »