跳转至

Golang 编程实践

回文十进制数

Tip

如果把某个数的各个数字按相反的顺序排列,得到的数和原来的数相同,则这个数就是“回文数”。譬如 123454321 就是一个回文数。

问题: 求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数 10 的最小值。

Go 切片中删除元素的两种方法对比

在 Go 语言中,切片是一个非常常用的数据结构。当我们需要从切片中删除某个元素时,通常有两种实现方法:

  1. 使用 append 方法删除元素。
  2. 使用替换删除法。

本文将对这两种方法进行对比,分析各自的优缺点,并帮助你根据具体需求选择合适的实现方式。

GC 垃圾回收算法

垃圾回收(Garbage Collection,简称 GC)是自动内存管理的核心机制。本文将深入介绍 GC 的评价标准以及经典的标记-清除算法。

评价标准

评价 GC 算法的性能时,我们采用以下 4 个标准:

标准 说明
吞吐量 单位时间内的处理能力,即 GC 不占用的时间比例
最大暂停时间 GC 执行时程序暂停的最长时间,影响用户体验
堆使用效率 堆空间的有效利用率,避免内存碎片
访问的局部性 相关对象在内存中的邻近程度,影响 CPU 缓存命中率

GC 标记 - 清除算法(Mark Sweep GC)

GC 标记 - 清除算法由标记阶段和清除阶段构成。标记阶段是把所有活动对象都做上标记的阶段。清除阶段是把那些没有标记的对象,也就是非活动对象回收的阶段。通过这两个阶段,就可以令不能利用的内存空间重新得到利用。

执行 GC 前堆的状态

Go 反射(reflect)详解

在 Go 中,reflect 是一个内置的包,提供了一组用于运行时反射的方法和类型。使用反射可以在运行时动态地获取和操作**变量的值、类型和方法**,主要用于实现通用代码,如 JSON 序列化、类型转换、结构体拷贝等。