黄枫谷

勿在浮沙筑高台。

从如何判定对象消亡的角度出发,垃圾收集算法可以划分为 引用计数式垃圾收集(Reference Counting GC)和 追踪式垃圾收集(Tracing GC)两大类。本文介绍的均属于追踪式垃圾收集的范畴。

阅读全文 »

Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的墙,墙外面的人想进去,墙里面的人想出来。

阅读全文 »

Java 虚拟机在执行程序的过程中,会把它管理的内存划分为若干个数据区域,这些区域的用途不一,有着各自的创建和销毁时间。有些区域与虚拟机进程共存,有些区域则依赖用户线程。

阅读全文 »

一个系统中的进程是与其它进程共享 CPU 和内存资源的。然而,共享内存会形成一些特殊的挑战。如果有太多的进程占用内存,内存很快就会被占满,当一个新来的进程没有内存空间可用时,那它就无法运行。内存中的数据还很容易被破坏,例如,当某个进程不小心写了另一个进程使用的内存,原来的数据就被覆盖,这可能会导致非业务逻辑上的程序错误,这些错误往往都难以定位原因。为了更加有效地管理内存并且减少出错,现代操作系统提出了一个抽象的概念,叫做虚拟内存(Virtual Memory)。

阅读全文 »

按照冯·诺伊曼设计的计算机模型,CPU 执行指令,存储器系统负责存放 CPU 执行的指令和数据。在现代计算机中,存储器系统由不同容量、不同成本、不同访问时间的各级存储器组成。为什么要这样设计呢?

阅读全文 »

现实世界中不仅有整数,还有小数,有没有一种编码,能同时表示它们呢。IEEE 754 是 20 世纪 80 年代以来最广泛使用的浮点数运算标准,为许多 CPU 与浮点运算器所采用,简单来说,它采用了类似科学记数法的形式来表示整数和小数。该标准的设计者,William Morton Kahan 教授在 1989 年获得图灵奖。

阅读全文 »

C 语言中编码整数有两种不同的方式,一种只能表示非负数,也称为无符号数;另一种能够表示负数、零和正数,称为有符号数。而 Java 语言中没有无符号数,所有的整数都是有符号数。

阅读全文 »

最近在开发支付系统,在和第三方支付渠道联调时碰到一个问题:我的电脑是在公司的内网中,无法收到渠道发出的异步回调通知。要想解决这个问题,就需要进行内网穿透,于是在内网穿透工具 frp 的帮助下,成功的解决了这个问题。

阅读全文 »

看过直播的同学都知道,直播房间里有个订阅按钮,当你点击订阅之后,下次主播再开播时你就能在第一时间收到通知,以免你错过精彩内容。这就是观察者模式的一种经典应用。

阅读全文 »
0%