自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解跨域(CORS)问题:从同源策略到解决方案

本文介绍了前后端分离开发中的跨域问题及解决方案。首先解释了跨域概念和浏览器同源策略,指出协议、域名、端口任一不同即构成跨域。然后详细分析了CORS机制,包括简单请求和预检请求的处理流程,以及常见跨域错误的原因。接着介绍了多种解决方案:服务端配置CORS响应头、JSONP的局限性、前端代理转发和Nginx反向代理配置。最后给出了Go语言中实现CORS的代码示例,并强调了安全性考量,建议遵循最小授权原则,仅允许必要的跨域访问。

2025-08-19 10:58:43 1363 5

原创 MySQL 性能调优:SQL优化策略

问题:1.计算机系统的资源,包括,都是有限的。2.一个糟糕SQL不仅仅自己执行慢,还影响整个系统,如果有多个缓慢SQL,还可能导致数据库负载飙升,服务不可用。

2025-08-12 13:05:00 1115 5

原创 Go 语言模糊测试 (Fuzz Testing) 深度解析与实践

摘要:本文系统介绍了模糊测试技术的起源、原理及在Go语言中的应用。模糊测试由Barton Miller教授在1988年提出,通过随机输入测试程序健壮性。Go 1.18开始内置模糊测试支持,其工作原理包括种子语料库、变异引擎、代码覆盖率引导等核心机制。文章通过字符串反转案例对比传统单元测试与模糊测试的差异,展示模糊测试如何发现边缘错误。模糊测试能有效检测程序崩溃、死循环和内存泄漏等问题,与单元测试形成互补,共同提升代码质量。最后介绍了在Go中编写模糊测试的具体实现方法。

2025-08-04 16:21:19 1242 7

原创 Go语言unsafe包深度解析

Go语言以简洁高效著称,其严格的类型系统确保内存安全。但在与底层硬件交互等场景下,标准类型系统可能受限,因此提供了unsafe包作为"逃生舱"。unsafe包的核心是Pointer类型,配合Sizeof、Alignof等函数,可直接操作内存,实现零拷贝类型转换和结构体字段访问。虽然能显著提升性能(测试显示字符串转换速度提升3倍以上),但存在破坏类型安全、悬垂指针等风险,需谨慎使用。标准库和第三方高性能库(如fasthttp)都合理运用了unsafe包。建议优先考虑内存对齐优化、泛型等替代

2025-07-26 16:42:51 1281 8

原创 Go 面试官常问:defer 语句的执行顺序与参数求值机制详解

堆上分配 · 1.1 ~ 1.12栈上分配 · 1.13开放编码 · 1.14 ~ 现在。

2025-07-12 20:55:56 1137 7

原创 Go 原生 http 实战:从零构建一个前后端不分离的用户管理系统(附源码)

本文章主要使用原生go语言原生 http 包,结合HTML/CSS/JS,开发一个前后端不分离的用户管理系统。有用户登录、注册、用户展示、信息修改、以及管理员操作。

2025-06-14 18:58:21 1104 8

原创 操作系统结构设计

对于模块化的结构来说,将操作系统划分为若干个有一定独立性的模块,优点是模块之间的逻辑清晰,易于维护,确定接口之后可以同时开发多个模块,并且支持动态增加新的模块,可拓展性强,并且不同模块之间可以直接相互调用,性能较高。对于外核的结构来说,内核负责进程调度、进程通讯等功能,外核负责为用户进程分配未经抽象的硬件资源,优点是减少了虚拟硬件资源的映射层,提高了效率,缺点是:某些程序仍然需要通过虚拟的映射层,降低了系统的一致性,让系统变的更加复杂。操作系统的内核设计有5种:大内核、微内核、分层结构、模块化、外核。

2025-06-08 18:15:44 234 2

原创 详解Cookie,Session和Token

文中图片来源:《HTTP图解》这本书很推荐大家去看,在我看来是能清晰学习HTTP的。首先我们要知道为什么会有Cookie的出现,它是为了解决什么问题,为什么后面又演化出来了session和token。

2025-05-31 20:22:07 703

原创 欧几里得算法(求最大公约数)

欧几里得算法的原理是通过不断取余数,将求两个数的最大公约数转化为一个更小规模的等价问题,最终简化为一个数的最大公约数(即当余数为 0 时)。其数学基础是公约数的传递性,效率则来源于问题规模的对数级缩小。这一简单而优雅的方法不仅适用于基础的 GCD 计算,还为更复杂的数论问题奠定了基础。

2025-03-09 18:22:43 1160 1

原创 golang中Channel详解

机制无缓冲 Channelselect的作用发送阻塞无接收者时阻塞尝试发送,失败则跳过或执行default接收阻塞无发送者时阻塞尝试接收,失败则跳过或执行default死锁风险同一协程连续读写会导致死锁通过非阻塞机制避免死锁适用场景需要严格同步的简单场景需要非阻塞或多路复用的复杂场景通过select,可以避免无缓冲 Channel 的死锁问题,同时实现更灵活的并发控制。

2025-02-13 09:21:45 2015 7

原创 golang反射讲解与使用

反射使得程序能够在运行时获取类型信息和动态地操作数据。

2024-11-24 11:32:17 515 1

原创 进程、线程及goroutine详解

轻量级线程:goroutine 是由 Go 运行时管理的轻量级线程,相比于操作系统线程,它的开销更小。并发执行:goroutine 允许程序在同一进程内并发执行多个函数,可以处理 I/O 操作、网络请求等。调度:Go 的调度器会在 goroutine 之间进行调度,确保高效利用 CPU 资源。

2024-11-10 15:30:17 468

原创 golang中map详解(底层解析)

不少会把这两个概念混淆,其实哈希冲突和哈希碰撞并不是完全相同的概念哈希冲突是指两个不同的输入数据经过哈希函数计算后得到相同的哈希值。这种情况在任何哈希表实现中都可能发生,因为哈希函数的输出空间通常小于输入空间,所以会存在哈希值重复的可能性。哈希碰撞是指在哈希表中,两个不同的键经过哈希函数计算后得到相同的索引位置。这种情况会导致哈希表中存储的键值对发生冲突,需要采取某种冲突解决策略来处理。哈希冲突是哈希函数本身的特性,是无法完全避免的。

2024-10-12 11:20:31 1914 1

原创 golang安装Ebiten(详细教程)

通过以上步骤,你应该能够成功安装 Ebiten 并开始开发游戏。记得经常查看 Ebiten 的官方文档和示例,因为游戏库可能会随时间更新和改进。如果你使用 GoLand 或其他 IDE,确保它能正确识别 Ebiten 包。Ebiten 是一个用于 Go 语言的 2D 游戏库。首先,确保你已经安装了 Go 语言环境。如果一个空白窗口出现,说明 Ebiten 已成功安装。确保你的 GOPATH 环境变量已正确设置。这个命令会下载 Ebiten 及其依赖。文件并添加 Ebiten 作为依赖。

2024-09-01 22:06:05 1385 1

原创 golang中iota用法

可以在一个常量组中定义不同的常量与iota​​const (​fmt.Println(A, B, C, D, E, F) // 输出: 0 0 0 1 1 1。

2024-08-24 21:53:04 829

原创 JavaScript+HTML5+CSS实现精美好看的Todolist清单(附完整源码)

大家应该能看到我上面两张图的颜色是不同,其实我是用了随机颜色来展示这个标题的,下面是实现这个功能的JavaScript代码,这里主要用十六进制颜色表示,通过随机数获得随机的颜色//设置随机颜色标题i < 6;i++) {这里是css代码0% {70% {100% {.title {

2024-08-14 09:46:38 1477 2

原创 Java实现超级玛丽

【代码】Java实现超级玛丽。

2024-08-01 21:32:27 263 1

原创 Mysql+Javafx实现精美图书管理系统(附完整代码)

先说一下这个图书系统代码整体规划,主要采用MVC模式完成整体功能实现和效果展示,先介绍一下什么是MVC吧:MVC(Model-View-Controller)是一种软件设计模式,广泛用于构建用户界面的应用程序。MVC将应用程序分成三个核心部分:模型(Model)、视图(View)和控制器(Controller),以提高代码的可维护性和可扩展性。

2024-07-27 11:11:49 2178 8

空空如也

空空如也

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

TA关注的人

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