自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 TCP 和 UDP 可以绑定相同的端口吗?

TCP 和 UDP 在内核中是两个完全独立的模块,送给 TCP/UDP 模块的报文根据「端口号」确定送给哪个应用程序处理,因此 TCP 和 UDP 可以绑定相同的端口。

2025-02-11 16:29:17 1192

原创 服务器绑定 127.0.0.1 和 0.0.0.0 的区别

绑定 127.0.0.1 是绑定到 lookback 这个虚拟的本地回环接口,该接口只处理本机上的数据,如果服务器绑定 127.0.0.1 外部是无法访问的。绑定 0.0.0.0 是绑定到所有可用的网络接口,也就是说,此时可以接受来自任何网络接口的连接请求,外部是可以正常访问的。

2025-02-10 21:33:32 963

原创 govalidator 验证陷阱:字段名与规则名冲突

我有一个 User 结构体,我想验证里面的 email 字段存储的是不是邮箱,于是想用 govalidator 来实现这一功能,可是不管我输入什么,govalidator 都返回 true。

2024-11-13 14:56:13 469

原创 Redis RDB 持久化问题

有 A、B 两台计算机,将 A 中 Redis 的 rdb 文件拷贝到 B,B 重启 Redis 并未加载拷贝来的 rdb 文件。经过重重排查,最终发现问题出在 Redis 关闭的时候。

2024-05-26 21:55:49 973

原创 enable_shared_from_this 实现原理

enable_shared_from_this 可以帮助我们用 this 指针安全地创建 shared_ptr。

2024-05-15 21:10:57 855

原创 shared_ptr 引用计数相关问题

智能指针是 C++11 增加的非常重要的特性,并且也是面试的高频考点,本文主要解释以下几个问题:- 引用计数是怎么共享的、怎么解决并发问题的- 资源释放时,控制块的内存释放吗- weak_ptr 怎么判断对象是否已经释放

2024-05-11 20:29:43 1030

原创 Redis rehash 相关问题

本文主要介绍 Redis Hash 表 rehash 相关的三个问题:- 什么时候触发 rehash- rehash 扩容扩多大- rehash 如何执行

2024-05-03 20:03:51 914

原创 Win 下 ncnn 编译运行

官网上编译的过程比较详细,本文主要记录编译、运行过程中遇到的问题,希望可以帮到大家。我的环境是 Win10 系统,VS 2022。

2024-04-24 16:42:32 1320

原创 TIME_WAIT 状态存在的目的

TIME_WAIT 状态有两个存在的理由:1. 可靠地实现 TCP 全双工连接的终止2. 允许老的重复数据在网络中消逝

2024-03-08 09:30:00 545

原创 shared_ptr 模拟实现

shared_ptr 这种智能指针访问对象采用共享所有权来管理其生存期。没有哪个特定的 shared_ptr 拥有该对象。取而代之的是,所有指涉到它的 shared_ptr 共同协作,确保在不再需要该对象的时刻将其析构。

2023-12-04 08:45:32 581

原创 printf 是怎么舍入的

先说结论,IEEE 754 浮点标准默认采用的是向偶数舍入。

2023-10-09 08:46:58 366

原创 Open64 编译器安装

网络上关于 Open64 的资料很少,自己安装也花了很长时间,因此将安装过程整理出来。我使用的是 w2ll 分支,对应的 Tags 为「clang-prebuilt」,系统是 ubuntu 20.04,使用以下方法成功安装的时间是:2023 年 08 月 01 日。

2023-08-14 13:23:11 896 5

原创 静态链接库顺序问题

最近遇到了一个非常奇怪的问题,编译时竟因为链接库的顺序不同,就有完全不同的结果。这些东西都是在 muduo_base 中定义的,我明明链接的 muduo_base 库,为什么会有这些报错呢?当我改变链接库的顺序时,神奇的一幕出现了。编译成功了,运行程序也得到了我想要的结果。这究竟是为什么呢?下面就来为你解答这一迷题。

2023-05-30 10:00:00 1113

原创 C 语言隐式类型转换

C 语言隐式执行的类型转换,让我们难以捉摸。有时默默进行的类型转化会导致难忘的经历,我曾经就因 -1 > 1 这个表达式为真,找了一个多小时的 bug。

2023-05-04 10:00:00 640

原创 虚函数表存储位置

先说结论:虚函数表存储在可执行目标文件的只读数据段、虚函数存储在代码段、虚表指针的存储的位置与对象存储的位置相同。

2023-04-05 10:00:00 6356

原创 sort 的 comp 为什么要求严格弱序

在使用 STL 提供的 sort 时,默认提供的排序方式可能不满足我们的需求,sort 也支持用户指定一个彷函数作为排序标准。有时,明明只是多了个等号又为什么错了呢?本文就带你解决这个疑惑。

2023-03-18 10:00:00 969

原创 STL sort 分析

STL 的 sort 算法,数据量大时采用快速排序,分段递归。一旦分段的数据量小于某个门槛,为避免快速排序的递归调用带来过大的额外负荷,就改用插入排序。如果递归层次过深,还会改用堆排序。这个算法接受两个随机迭代器,然后将区间内的所有元素以升序排列。

2023-03-15 10:00:00 1134

原创 继承下的缺省参数值和访问说明符

本文将介绍 C++ 继承体系下,函数缺省参数的绑定和函数访问说明符的绑定。这些奇怪的问题实际上不应在我们的代码中出现,但它们能帮助我们理解 C++ 的动态绑定和静态绑定,也能帮助我们更好的通过面试。

2023-03-06 10:00:00 1258

原创 SGI 空间配置器

空间配置器是 STL 六大组件之一,它总是隐藏在容器的背后,默默工作,默默付出。本文为《STL 源码剖析》读书笔记,主要讨论 SGI 版本空间的配置和释放,对代码进行解读时会改变一些写法,使其更易于阅读。

2023-02-24 10:00:00 1843

原创 返回值的理解

我们写的函数是怎么返回的,该如何返回一个临时变量,临时变量不是出栈就销毁了吗,为什么可以传递给调用方?返回对象的大小对使用的方式有影响吗?本文将带你探究这些问题。

2023-01-26 09:45:00 1300

原创 传参的理解

当我们调用函数的时候,参数是怎么传递给被调用方的,有想过这个问题吗?传递不同大小的参数对调用方式有影响吗?本文将带你探究这些问题。

2023-01-25 09:45:00 1237

原创 浮点数舍入规则

想必大家对小数的舍入很熟悉,毕竟四舍五入是我们在小学就听到的概念。但很遗憾,计算机并没有采用这种舍入方式,因此有时我们会对它的一些进位产生疑惑,本文就为大家解开这个疑惑。

2023-01-24 10:00:00 4361

原创 new 和 delete 为什么要匹配使用

关于 new 和 delete 的使用相信大家并不陌生,可是为什么使用 new 的时候要用 delete,使用 new[ ] 的时候又要用 delete[ ]。使用 delete 释放 new[ ] 申请的内存又会发生什么?为什么有时不匹配不会报错,有时又会报错呢?

2022-10-14 07:30:00 1798

原创 typename 的用法

在模板声明的模板参数列表中,typename 可以用来替换 class 声明模板参数类型。在模板的声明或定义中,typename 可以用来声明从属名称是一种类型。

2022-09-25 14:08:30 3016

原创 C++ 生成随机浮点数

在 C++11 之前,我们通常采用 rand() 来生成随机数。但 rand() 对一些情况显得难以处理:1. 不同范围的随机数2. 需要随机浮点数3. 需要非均匀分布的随机数

2022-04-14 11:03:25 12490 2

原创 C 语言 rand 和 srand 使用方法

有时我们想用 rand() 生成一组随机数,尽管我们调用了 srand(),但是生成的值还是一样。为什么会产生这种情况?又该如何解决?下面将用第一视角一起探究这其中的奥秘。

2022-03-12 18:26:24 4340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除