自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang-MAP源码学习、扩容机制等

map是golang中常用的一个基本数据结构,继上篇的之后,本文学习map的源码相关。

2024-03-26 10:45:15 1181

原创 Golang切片扩容机制(新旧版本不同)

切片扩容机制,面试的一个高频考点了算是,并且经历过一次版本更新(1.17–1.18)。所以可能八股有所变动。本文参考自:https://juejin.cn/post/7101928883280150558。

2024-03-25 12:08:42 487

原创 修改Yaml文件报错“块映射中的子元素无效”

Goland+pb+yaml文件开发的。

2024-03-07 14:06:56 816

原创 Golang-channel合集——源码阅读、工作流程、实现原理、已关闭channel收发操作、优雅的关闭等面试常见问题。

面试被问到好几次“channel是如何实现的”,我只会说“啊,就一块内存空间传递数据呗”…所以这篇文章来深入学习一下Channel相关。从源码开始学习其组成、工作流程及一些常见考点。

2024-03-06 16:31:39 1800

原创 Golang-如何优雅的关闭一个Channel?

这部分主要参考自:https://qcrao91.gitbook.io/go/channel/ru-he-you-ya-di-guan-bi-channel。

2024-03-06 16:29:42 662

原创 Golang的Channel源码阅读、工作流程分析。

位于下的chan.go中。

2024-03-06 16:03:32 529

原创 关于Golang的nil channel(一个莫名其妙的东西,但如果没有make初始化就会遇到)

我的确不太明白这个东西有啥用,但给我的警示就是:一定记得初始化。

2024-03-06 16:01:32 480

原创 Golang中defer与return的执行顺序——不易混淆

defer和return是常用的一个点,面试高频,也是实战容易踩坑。先前对他进行过一次学习,理解起来略拗口,但好歹也算是学会了。昨天面IEG时候被面试官拷打,并给出了一些提示,让我对个知识点有了新的认识,于是决定对其进行再一次的学习。

2024-03-05 09:49:42 746 1

原创 Golang单例模式学习笔记

单例模式是常用的一种设计模式,一般用于比如客户端、连接的创建等,防止创建多个导致性能消耗。所以我认为单例模式的核心,就是“防止重复”。本文将在Golang中进行单例模式的实现。

2024-03-04 17:40:03 481

原创 Golang Copy()方法学习

这个没什么多的内容,但就是说,官方文档比来回cv的那些教程高大上一万倍。。。官方文档:https://golangbyexample.com/copy-function-in-golang/

2024-03-04 14:37:06 641 1

原创 Kafka学习笔记

Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。清理策略针对的是过期的segment文件,而不是某条过期的数据。可以单独针对某topic配置,也可针对kafka集群配置(config/server.properties)。策略分三种:基于时间,基于日志文件大小,基于日志文件起始偏移量。为了避免在删除时阻塞读操作,采用了copy-on-write形式的实现。

2024-03-01 17:57:48 736 1

原创 Kafka中的acks机制——一次由错误资料引发的源码学习

这次的学习过程来历有点奇怪。我本来是学习kafka过程中正常的学到了这个acks机制,但是发现很多地方写的都不太明白。因此决定还是自己来看一下源码。具体来说:请看搜索结果(Google引擎)这个是搜索“Kafka的ack”所得到的结果。第一条:是直接转载的其他地方。并且只是说了0 1 -1,至于这个是什么,看完还是懵逼。第二条:看起来清晰了许多,感觉总结的也很精辟…第三条是完全复制的第二条。第四条是黑马的网站,其中给到了一个举例…

2024-03-01 11:51:04 552

原创 Golang反射学习

反射,当初学到的时候,发现是一个比较高深的概念。网上搜索出来的资料中,动辄就是对其的三法则等大篇讲述,开头只是一个TypeOf和一个ValueOf,展开来便是那么大一堆…看的莫名其妙,一脸懵逼。所以找了些资料重新学了一遍,从熟悉的地方入手,更加容易的去看一下。并此文以记录。

2024-02-26 16:52:34 481

原创 Docker+Kafka+Kafka-ui安装与配置

Docker、Kafka都是开发中常用到的组件。在自己的第三台电脑上去安装这些…所以写个博客记录一下安装过程。本文主要内容:Docker安装、kafka安装、kafka可视化配置。这次的电脑环境是Windows11,Intel处理器。

2024-02-26 03:37:50 651

原创 bash脚本初探——踩坑

工作里面一个地方,需要服务器跑一下脚本。第一次些shell脚本,所以搞一下,记录一下这些问题。

2024-02-22 16:37:11 246

原创 Golang-Map有序输出——使用orderedmap库实现

Golang内置的Map是无需的,而OrderedMap则是提供了一个有顺序的Map。其顺序是插入时的顺序。import ("sort"})其主要用法如下:通过新建一个Map。通过设置Map中的元素内容。(注意:key必须是string)通过o.Get("a")获取map内容。通过keys达到for range效果。通过进行元素删除。通过SortKeys和Sort进行排序。1、通过OrderedMap。

2024-02-05 23:45:59 2149

原创 Mysql索引相关学习笔记:B+ Tree、索引分类、索引优化、索引失效场景及其他常见面试题

按「数据结构」分类:B+tree索引、Hash索引、Full-text索引。按「物理存储」分类:聚簇索引(主键索引)、二级索引(辅助索引)。按「字段特性」分类:主键索引、唯一索引、普通索引、前缀索引。按「字段个数」分类:单列索引、联合索引。

2024-01-25 16:30:44 1090

原创 Mysql索引的结构——B++ Tree

索引是Mysql中常用到的一个功能,可以大大加快查询速度,同时面试中也是经常碰到。本文是学习Mysql索引的归纳总结。

2024-01-24 17:27:19 1144

原创 在Golang中导入GPT——这一定是你见过最简短的屎山!

近年来,GPT爆火。在我的毕设中(Golang开发),需要加一个GPT接口。因此参考网上的资源,有许多这样提供接入功能的包。但其有的是定死在了openai的官网,对于国内用户不太友好。因此我需求是可以使用镜像api。同样,由于我的毕设宗旨是“能用就行”,而网上的包中主打一个啥都有的全面,其中繁琐的功能对我并没有什么用处,目前来看可能仅需一个最基本的问答即可,模型设置通通达咩。因此计划自己在开源项目的基础上删减一个。在openai的提供了这样的教程。本文将主要参考此文档和其他开源库进行开发。

2024-01-24 02:41:04 533

原创 GIt同时存在传入和传出更改修改,无法合并

前一天提交了代码,mt进行了修改。但我忘记拉取最新,就进行了下次修改(主要是格式修改)。所以在提交时便出现了冲突,无法提交。再次进行拉取时,也无法成功拉取,会提示冲突合并。但是合并时候,也会遇到各种各样的问题。

2024-01-23 11:11:59 829

原创 Golang通过Gorm操作Mysql时遇到的datetime时区问题

golang使用Gorm操作MySQL,MySQL中数据类型是datetime,Golang中用的是time.now。但是会导致存储的时间与北京时间有8h误差, 显然是没有初始化时区导致。

2024-01-18 02:17:31 1477 1

原创 Go语言Context (ctx)的基础概念与用法

ctx字面意思上下文,是golang中特有的一种语法,几乎每一个程序中都会通篇传递着一个ctx。而一些框架又对其进行二次封装,诸如Gin框架中的。因此此次进行ctx的学习并记录。

2024-01-17 15:12:05 1099

原创 GMP模型学习笔记:概念、流程概述、设计机制及部分场景

GMP模型学习笔记:概念、流程概述、设计机制及部分场景

2024-01-16 17:14:16 934

原创 Golang+Gorm库使用踩坑——未标识primarykey导致创建后无法返回修改

做毕设ing,基本的增删改查。我在外层调用时候,是需要返回新增记录的ID。但是无法符合预期。通过打印发现,我这里返回的id就是0。

2024-01-15 02:34:45 702

原创 计算机网络面试八股复习:常见的Http状态码

面试被问到过一次。自己最近使用Gin框架,在Response的时候有时候也会用到一个自定义的状态码。因此归纳一下这方面,供自己日后面试复习以及开发时候参考。

2024-01-12 14:41:43 513 1

原创 Golang defer 使用及面试常见的坑

defer是Golang中一个常用的关键字,通常用来做一些收尾工作。比如开启了一个东西,就顺手defer中关闭。对于面试,defer也算一个高频考点,尤其是他的许多个坑,因此本文主要复习一下defer的用法。

2024-01-11 17:19:22 1030 1

原创 Golang三色标记法面试复习

垃圾回收是指对不再使用的内存资源进行自动回收的功能。C++等语言中使用的是手动管理,而Go中则是自动管理。Go的垃圾回收机制主要是三色标记法,可以减少因垃圾回收导致程序暂停的影响。本文主要是学习这个机制。

2024-01-11 15:13:05 841

原创 计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

OSI七层模型TCP/IP四层模型五层模型。

2024-01-11 11:49:07 480

原创 Goroutine泄露的概念及常见原因汇总

Go的并发是以goroutine和channel的形式实现的。协程泄露是指goroutine创建后,由于一些错误,长时间得不到释放。继续不断创建新的goroutine协程,最终导致内存耗尽,程序崩溃。简单来说,协程泄露就是指创建的goroutine炸了导致无法释放,所以一直卡的占内存,长期以往让整个系统直接挂掉。Goroutine泄露是Golang中常见的一种错误,网上有话说“Go 10次内存泄漏,8次goroutine泄漏,1次是真正内存泄漏,还有1次是cgo导致的内存泄漏”。因此一定不可掉以轻心。

2024-01-11 10:52:02 1077

原创 Golang,Gin框架使用ShouldBindJSON时出现EOF报错

定义时候注意细节…Go的反引号标签要用好。

2024-01-11 02:30:59 1059

原创 进程、线程、协程的对比、区别和联系,进程之间的通信方式、线程之间的通信方式、协程之间的通信方式

学习了进程、线程协程的通信等

2024-01-11 01:12:39 1182

原创 Golang协程池ants库的学习、使用及源码阅读,协程池与GMP模型关系的理解

在工作时遇到了一个需要使用ants协程池的地方,因此顺带来学习一下他的原理。

2024-01-10 11:49:05 3098

原创 golang 记录一次协程和协程池的使用,利用ants协程池来处理定时器导致服务全部阻塞

主要是记录了一次自己对协程池的使用,在此过程中,从仅使用协程处理定时器,到使用协程处理整个方法实现并发,再到使用协程池。后续会进行ants库底层源码的学习。

2024-01-09 16:51:49 955 1

原创 Golang中for和for range语句的使用技巧、对比及常见的避坑

基础语法不再赘述,写这个原因是之前的某次面试被问道了,我知道会导致问题但具体答下来不是很通顺。再回想自己开发过程中,很多地方都是使用到了for/for range,但是却从没注意过一些细节,因此专门学习一下进行记录。对一个数组循环,for range,使用kv时候有什么要注意的吗?这个是当时面经记录的问题。因此顺着这里开始进行学习。

2024-01-08 16:11:15 2256 3

原创 (低级错误)IDEA/Goland报错连接数据库失败:URL错误和权限问题。

1、排查时候先去本地cmd连接。这个过程发现了是自己失误忘记开权限,只记得加了3306端口的放行。2、写地址时候记得写对。

2024-01-08 02:23:36 825

原创 go mod init 报错 go: cannot determine module path for source directory,不需要指定包名也可以自动推导!

新建了一个test文件,进入后使用出现报错,报错内容:直接给了很简单的解释:“outside GOPATH, module path must be specified”,“在GOPATH之外,必须指定模块路径”。成功。

2024-01-07 23:56:30 1976

原创 Go语言学习记录——用正则表达式(regexp包)来校验参数

下面是菜鸟教程中给出的定义正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。正则表达式可以在文本中查找、替换、提取和验证特定的模式。简单来说,他就是一个文字处理的工具,对文字进行一系列的处理。在Golang中,可以使用内置的regexp包来进行使用。

2024-01-07 23:53:01 696

原创 毕设随笔Day2——各种杂乱事情的心烦意乱...

过于烦躁,没有摘要

2024-01-07 22:52:32 372

原创 Golang中的深浅拷贝、结构体的拷贝、或可能的深拷贝失败原因

深拷贝:创建一个一样的新对象,新分配一块内存。新旧对象的修改操作互不影响。浅拷贝:只复制指向对象的指针,新旧对象依旧是同一块内存,修改时一起修改。

2024-01-05 14:44:15 1731

原创 毕设随笔Day1——设计上的慌乱和毫无头绪...

最近开始着手做毕设了,毕设内容是一个微博客系统。

2024-01-05 02:11:24 349

空空如也

空空如也

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

TA关注的人

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