- 博客(24)
- 收藏
- 关注
原创 GitHub 爆火的 PPT Master,我花钱折腾一天,结果就给 PPT 换了背景?
PPT Master 真有那么神?我花钱实测,结果做出来的 PPT……
2026-11-01 19:56:12
729
原创 Docker 部署 Go 项目,依赖下载一直超时?一篇搞定
Docker 部署 Go 项目时,依赖下载一直超时怎么办?本文将从网络环境、和 Go代理、DNS 配置、Docker网络环境入手,带你逐步定位问题,让项目构建顺利进行
2026-10-29 22:40:07
182
原创 Docker系列---Docker容器其他常用命令(新手小白保姆级实操教程)
容器常用命令:进入容器、查看日志、复制文件、获取容器详细信息、查看容器的实时资源使用情况命令
2026-10-28 21:15:54
159
原创 Docker系列---Docker初识
本文将带你初步认识 Docker并深入解析VMware和docker的区别。我们从 Docker 产生的背景出发,了解传统软件部署面临的问题,进而认识 Docker 的基本定义、核心思想与架构,并结合 Docker Logo 理解容器化的概念。最后,通过对比 VMware 与 Docker,分析两者在运行原理、操作系统、资源占用和应用部署方面的区别,为后续学习 Docker 镜像、容器及网络等知识打下基础。
2026-10-22 16:52:08
124
原创 VMware安装CentOS保姆级教程---简单易懂
这里下载的是CentOS 7,网上的Linux和docker教程大多是基于CentOS 7。复制下面链接直接打开,进行下载。
2026-09-25 17:58:35
364
原创 读书有感:“换位思考”新的解读
读吴军《硅谷来信》第3封信,对“换位思考”有了新领悟:面对反驳,应经历三次思考——先觉情绪,再设身处地理解对方逻辑,最后反思自身境界。此前与同学争执视频策划时,我只感被“怼”,如今明白反驳是成长契机。真正换位,不是妥协,而是通过挑战自我认知,深化理解、提升格局。
2026-09-23 09:30:00
205
原创 Go语言泛型详解:从类型参数到泛型函数、泛型结构体实战
泛型是 Go 1.18 引入的重要特性,它解决了不同类型数据处理时重复编写代码的问题。本文从泛型产生的背景出发,详细讲解 Go 泛型中的类型参数、类型约束、any、comparable、泛型函数、泛型结构体以及类型推断等核心概念,并通过实现 Max 函数、泛型 Stack、Filter 过滤器等案例,深入理解泛型在实际开发中的应用。通过本文学习,可以掌握 Go 泛型编程的基本思想,为后续学习泛型数据结构和工程实践打下基础。
2026-08-21 21:36:48
311
原创 Go JSON详解:为什么需要JSON?序列化与反序列化原理及实战
JSON 是不同程序之间进行数据交互的重要桥梁。本文从实际开发场景出发,带你理解 Go 为什么需要 JSON,并系统讲解 encoding/json 包中 Marshal 和 Unmarshal 的使用,包括结构体、Map、切片的序列化与反序列化。通过完整代码示例,快速掌握 Go 中 JSON 数据处理的核心知识。
2026-08-21 10:57:44
317
原创 Go并发编程中的同步控制:sync包(Mutex、RWMutex、WaitGroup、Once)
摘要:本文介绍了Go语言sync包中的四种同步控制工具: Mutex互斥锁:保证临界区独占访问,支持读写操作; RWMutex读写锁:允许多个读操作并发,写操作独占,适用于读多写少场景; WaitGroup:通过计数器机制等待多个goroutine完成,防止主协程提前退出; Once:确保函数仅执行一次,常用于初始化场景。 通过学生成绩管理系统等示例,演示了锁保护共享资源、协程同步等典型应用,并对比了共享内存加锁与通道通信两种并发编程范式。(149字) 核心要点: 互斥锁与读写锁的选择取决于读写比例 Wai
2026-08-10 17:03:52
472
3
原创 Go GMP 调度模型:为什么 Go 可以轻松创建百万级 Goroutine?
M只需要绑定P执行G,只需要执行G。这时候可以在线程和协程之间加一个调度器,来实现协程之间的不断切换,但是线程还是原来的那个,这样就解决了上一版操作系统的高消耗cpu调度问题(这里的协程之间不断切换是在用户态,由用户调度器完成,不需要操作系统进行线程调度,因此比线程切换开销低)上一版本操作系统,线程不仅有内核空间也有用户空间,cpu要管这两个空间,其实cpu可以只专注于内核空间,所以在改进版中,把内核空间和用户空间分开了,即用户线程和内核线程,用户线程命名为协程,内核线程命名为线程。
2026-08-06 21:58:18
439
原创 Go Slice 深入理解:为什么 append 后必须重新赋值?
由于指向的时同一底层数组,所以底层数组的数据被修改,len cap没有改变,因此原 slice 仍然只能访问前三个元素,但是也可以强制访问 打印s[:4] ,0 0 0 4。append 接收 slice header 的副本,并根据情况修改底层数组或者创建新的底层数组,最后返回新的 slice header。slice 是 Go 对底层数组的一个抽象,它通过 slice header 保存底层数组地址、长度和容量。显然,当切片的副本修改某元素时,(底层数组中的数据被修改了)原切片的数据也会修改。
2026-08-01 17:57:15
189
原创 Go语言接口入门---小白的学习记录
接口也是一种类型,和数据类型不一样,接口是方法的集合。如果实现了接口所规定的所有方法,就可以说实现了接口。接口是行为类型的契约。
2026-07-25 21:39:28
184
原创 Git三区模型及三区流转知识梳理
切换到目的目录之后,执行该条指令就会初始化仓库,即在目的文件的同级目录下创建一个以.git为结尾的文件夹(有时候这个文件夹是隐藏的,需要设置一下才能看见)以git这个登录名去访问GitHub的服务器,访问GitHub用户名为biglightstar的名为/AI-.git的仓库。写完3之后,对远程仓库相关操作的时候,就可以直接用仓库名,不用再写它的地址了。,给远程仓库起一个origin的名字<远程仓库在GitHub上的地址>把本地工作区的指定文件放到暂存区,则该文件的状态由。:要访问的该用户的这个仓库。
2026-07-18 21:14:54
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅