自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(171)
  • 资源 (1)
  • 收藏
  • 关注

原创 Go语言 fmt 包:格式化输出的利器

【代码】Go语言 fmt 包:格式化输出的利器。

2023-12-14 11:56:11 272

原创 玩转 Go 语言并发编程:Goroutine 实战指南

【代码】玩转 Go 语言并发编程:Goroutine 实战指南。

2023-12-12 13:11:39 310

原创 深入理解 Go 语言 Goroutine 的工作原理

【代码】深入理解 Go 语言 Goroutine 的工作原理。

2023-12-12 11:51:03 506

原创 Go并发编程:保障安全与解锁奥秘

【代码】Go并发编程:保障安全与解锁奥秘。

2023-12-11 14:24:26 509

原创 深入剖析Go语言中的Select语句:并发控制的精髓

【代码】深入剖析Go语言中的Select语句:并发控制的精髓。

2023-12-11 09:10:56 181

原创 深入理解 Go Channel:解密并发编程中的通信机制

【代码】深入理解 Go Channel:解密并发编程中的通信机制。

2023-12-09 22:34:09 242

原创 Go 协程基础:轻松入门并发编程,解析 Goroutines 的奥秘

wg.Done() //第三步:协程执行完毕,计数器-1。wg.Add(1) //第二步:开启一个协程计数器+1。wg.Wait() //第四步:计数器为0时退出。var wg sync.waitGroup //第一步:定义一个计数器。协程 统计 60001-90000。协程 统计 90001-120000。

2023-12-09 22:33:01 80

原创 深入探讨Go语言协程调度:GRM模型解析与优化策略

一、线程调度1、早期单线程操作系统一切的软件都是跑在操作系统上,真正用来干活(计算)的是 CPU 早期的操作系统每个程序就是一个进程,直到一个程序运行完,才能进行下一个进程,就是“单进程时代” 一切的程序只能串行发生2、多进程/线程时代在多进程/多线程的操作系统中,就能解决了阻塞的问题,因为一个进程阻塞 cpu 可以立刻切换到其他进程中去执行 而且调度 cpu 的算法可以保证在运行的进程都可以被分配到 cpu 的运行时间片 这样从宏观来看,似乎多个进程是在同时被运行 但新的问题

2023-12-08 13:30:00 418 1

原创 Go语言中的轻量级并发利器:深入探索Goroutine的魅力

A.多线程程序在一个核的cpu上运行,就是并发B.多现程程序在多个核的cpu上运行,就是并行并发:本质还是串行并行:任务分布在不同cpu上,同一时间点同时执行。

2023-12-08 09:10:26 48

原创 Go语言中的装饰器模式:优雅增强功能,提升代码可维护性

Go语言中的装饰器模式:优雅增强功能,提升代码可维护性。

2023-12-07 13:13:06 144

原创 Go语言中的接口设计艺术:发现面向对象编程的无限可能

定义一个 Usber 接口让 Phone 和 Camera 结构实现这个接口//1、接口是一个规范start()stop()//2、如果接口里面有方法的话,必要要通过结构体或者通过自定义类型实现这个接口fmt.Println(p.Name, "启动")fmt.Println(p.Name, "关机")Name: "华为手机",var p1 Usber // golang中接口就是一个数据类型p1 = p // 表示手机实现Usb接口p1.start()p1.stop()/*

2023-12-07 08:51:43 701

原创 Go语言异常处理:优雅应对错误,写出更可靠的代码

Golang 没有结构化异常。使用 panic 抛出错误,recover 捕获错误Go 中可以抛出一个 panic 的异常,然后在 defer 中通过 recover 捕获这个异常,然后正常处理panic 可以在任何地方引发,但 recover 只有在 defer 调用的函数中有效。

2023-12-06 13:39:14 188

原创 Go中的延时执行魔法:深入浅出defer用法

关键字 defer 用于注册延迟调用这些调用直到 return 前才被执行,因此,可以用来做资源清理多个 defer 语句,按先进后出的方式执行defer 语句中的变量,在 defer 声明是就决定了。

2023-12-06 09:00:56 95

原创 深入理解 Go 函数:从基础到高级

函数是组织好的、可重复使用的、用于执行指定任务的代码块Go 语言中支持:函数、匿名函数和闭包接下来我们来看一下语句块定义的变量,通常我们会在 if 条件判断,for 循环、switch 语句上使用这种定义变量的方式test2(1,2)fmt.PrintIn(x, y) //函数的参数也是只在本函数中生效if x > 0 {z := 100 //变量 z 只在 if 语句生效//fmt.Println(z)//此处无法使用变量 z4、for 循环语句中定义的变量。

2023-12-05 15:05:18 665

原创 使用 Go Modules 管理依赖:简明教程

包(package)是多个 Go 源码的集合,是一种高级的代码复用方案Go 语言为我们提供了很多内置包,如 fmt、strconv、strings、sort、errors、times、encoding/json、os、io 等Golang 中的包可以分为三种,1、系统内置包2、自定义包3、第三方包系统内置包fmt、strconv、strings、sort、errors、time、encoding/json、os、io 等自定义包开发者自己写的包第三方包。

2023-12-05 13:26:03 384

原创 掌握 Go 语言中的循环结构:从基础到高级

掌握 Go 语言中的循环结构:从基础到高级

2023-12-04 16:36:35 377

原创 深入理解 Go 语言中的接口(interface)

在 Go 语言中接口(interface)是一种类型,一种抽象的类型接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节实现接口的条件一个对象只要全部实现了接口中的方法,那么就实现了这个接口换句话说,接口就是一个需要实现的方法列表定义了一个 Usber 接口让 Phone 和 Camera 结构体实现这个接口//1、接口是一个规范start()stop()//2.如果接口里面有方法的话,必要通过结构体或通过自定义类型实现这个接口。

2023-12-04 16:11:28 407 1

原创 Go 语言中的结构体:定义、初始化与高级用法解析

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型Go语言中可以使用type关键字来定义自定义类型将myInt定义为int类型,通过type关键字的定义,myInt就是一种新的类型,它具有int的特性类型别名与自定义类型表面上看只有一个等号的差异结果显示a的类型是main.newInt,表示main包下定义的newInt类型。

2023-12-02 13:52:45 704

原创 Go 指针

比如我们定义了一个变量a := 10,这个时候可以直接通过a这个变量来读取内存中保存的10这个值。指针也是一个变量,但它是一种特殊的变量,它存储的数据不是一个普通的值,而是另一个变量的内存地址。Go语言中的指针操作非常简单,我们只需要记住两个符合:&(取地址)和*(根据地址取值)变量的本质是给存储数据的内存地址起了一个好记的别名。在计算机底层a这个变量其实对应了一个内存地址。指针地址、指针类型、指针取值。

2023-11-30 23:31:25 353 1

原创 Go map类型

map是一种无须的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用Go语言中map的定义语法如下:map[KeyType]ValueType其中KeyType:表示键的类型ValueType:表示键对应的值的类型map类型的变量默认初始值为nil,需要使用make()函数来分配内存其中cap表示map的容量,该参数虽然不是必须的注意:获取map的容量不能使用cap,cap返回的是数组切片分配的空间大小,根本不能用于map。

2023-11-30 09:26:55 458

原创 GoLang切片

切片(Slice)是一个拥有相同类型元素的可变长度的序列它是基于数组类型做的一层封装它非常灵活,支持自动扩容切片是一个引用类型,它的内部结构包含地址、长度和容量声明切片类型的基本语法如下:name:表示变量名T:表示切片中的元素类型//切片是引用类型,不支持直接比较,只能和 nil 比较var a []string //声明一个字符串切片var b = []int{} //声明一个整型切片并初始化。

2023-11-29 23:00:36 413

原创 Go 数组

数组是指一系列同一类型数据的集合数组中包含的咩个数据被成为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等一个数组包含的元素格式被称为数组的长度在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是[5]int和[10]int 是两个不同的类型Golang 中数组的另一个特点是占用内存的连续性,也就是说数组中的元素是被分配到连续的内存地址中的, 因而索引数组元素的速度非常快。

2023-11-28 15:44:26 242

原创 Go字符串类型

uint8 类型,或者叫 byte 型:代表了 ASCII 码的一个字符。rune 类型:代表一个 UTF-8 字符。

2023-11-28 13:37:20 266

原创 Go 数字类型

Go 语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有:整型、浮点型、布尔型、字符串复合数据类型有:数组、切片、结构体、函数、map、通道(channel)、接口。

2023-11-27 22:23:05 688

原创 Go 基本数据类型

【代码】Go 基本数据类型。

2023-11-27 13:48:27 336 1

原创 Go 内置运算符

【代码】Go 内置运算符。

2023-11-27 13:24:04 368 1

原创 Go 基本语法

Go(又称 Golang)是一门由 Google 设计的开源编程语言,以其简洁、高效和并发支持而受到广泛关注。本文将介绍 Go 语言的一些基本语法要点,使初学者对该语言有一个初步的了解

2023-11-27 11:42:33 461

原创 git设置账户名密码

当你再次pull或push时,还会弹出需要输入账号密码,输入完这一次,下次就不用再次输入了,应该好多朋友是遇到了这个问题,所以感觉设置后还需要输入,没有效果。最近新创建了一个项目,同步git代码,但是每次连接远程都要重新输入用户名密码信息,很烦,就想着怎么让他记住账号。就用了以下方法,亲测有效,分享记录下。出现以上两行邮箱密码时,表名此时你的git已经记录了账号密码,再次上传拉取的时候就不用重新输入了。三 . 打开命令行今入.git文件中,执行命令:git config --list。

2023-05-09 09:26:51 2863 1

原创 探索知识:发现更多有用的知识,获取优惠卷!

对于PHP开发者来说,可以加入“PHP Go技术交流社区”知识星球,这里有来自不同行业的开发者们,可以互相交流经验和技巧,并分享一些有用的工具和资源。此外,该星球还提供了许多PHP相关的教程,包括基础语法、框架应用、性能优化等方面的内容,让学习者们能够更加深入地了解PHP的应用。对于Go开发者来说,也可以加入“PHP Go技术交流社区”知识星球,这里有来自不同领域的开发者们,可以互相分享经验和技巧,并讨论一些有趣的话题。这些知识星球提供了丰富的教程和资源,让学习者们能够更好地掌握这两种语言的技能和应用。

2023-04-23 10:50:15 119

原创 MySQL中的索引index(超详细)

索引就是MySQL中可以高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上实现高级查找算法,这种数据结构就是索引。添加索引原则上来说可以大大的提高数据获取的效率。

2023-04-19 15:05:58 4811

原创 PHP的垃圾回收机制(全网详解)

当一个PHP对象不再被引用时,它就成为垃圾。垃圾回收器会定期扫描内存中的所有对象,将没有引用的对象标记为垃圾,并释放它们占用的内存空间,以便其他对象可以使用这些空间。为了避免这种情况的发生,PHP提供了一种手动解除引用的方法,即将对象赋值为null,这样就可以让对象的引用计数器降为0,从而被垃圾回收器释放。然而,在平常脚本中有循环回收机制运行的情况下,内存的节省将允许更多这种脚本同时运行在你的服务器上。在一个垃圾周期中,通过检查引用计数是否减1,并且检查哪些变量容器的引用次数是零,来发现哪部分是垃圾。

2023-04-14 15:30:00 1666

原创 使用PHP做个图片防盗链(全网详解)

主要是该站点的图片采用了防盗链的规则,其实这个规则也比较简单, 和大家一说就知道啦,主要是该站点在得知有请求时,会先判断请求头中的信息,如果请求头中有Referer信息,然后根据自己的规则来判断Referer头信息是否符合要求,Referer 信息是请求该图片的来源地址。相信大家看到这,也就明白了,为什么我的代码不能访问到图片,而是显示一张警告盗链图片,因为我们的Referer头信息和百度贴吧的不同,当我的请求发出去时,该站点查看Referer头信息,一看来源不是本站,就重定向到另外一张图片了。

2023-04-14 15:00:00 879

原创 URLEncode原理(全网详解)

URL是为了 统一的命名网络中的一个资源(URL不是单单为了HTTP协议而定义的,而是网络上的所有的协议都可以使用)

2023-04-14 14:27:20 8988

原创 php(phar)反序列化漏洞及各种绕过姿势

概念:序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。简单来说就是我在一个地方构造了一个类,但我要在另一个地方去使用它,那怎么传过去呢?于是就想到了序列化这种东西,将对象先序列化为一个字符串(数据),后续需要使用的时候再进行反序列化即可得到要使用的对象,十分方便。来看看怎么说:所有php里面的值都可以使用函数来返回一个包含字节流的字符串来表示。函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。

2023-04-14 10:22:50 4638

原创 快速安装PHP8.2套件,看能有多快?

另外,同样是我的电脑,同样阿里云镜像库,装 centos 系统各类软件含 php 就很快,但装这个 ubuntu 就比较慢,原因不太清楚(可能的一个原因是因为 ubuntu 用的人太多,阿里限制了源的下载速率来稍微省点钱。使用 root 身份执行 composer 命令,会提示输入 yes ,挺麻烦,则。说明,安装 redis 7 需要下二进制包编译,坚决不编译,所以没搞。下面,整套设置新用户流程,先改初始,再加新用户并授权,再删除老用户。执行上面这些命令,大约 15 分钟左右,主要耗时就是这里。

2023-04-04 14:07:54 994

原创 thinkphp6使用EasyWeChat5.x公众号开发(二)

再次补充说明:URL是你利用thinkphp编写的一个接口地址,填写的时候不能带有任何参数,只能是类似于这种格式的接口地址进入到你的URL所在的控制器中进行编码,如下:示例代码:/*在做微信开发之前要验证自己开发者身份,微信开发团队给了一个认证环节即:1)将token、timestamp、nonce三个参数进行字典序排序2)将三个参数字符串拼接成一个字符串进行sha1加密3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信;这三个请求;

2023-04-03 20:00:00 366

原创 thinkphp6使用EasyWeChat5.x之公众号开发(一)

EasyWeChat是一个基于微信公众号和小程序的PHP SDK,它提供了简单易用的API接口,方便开发者快速开发和集成微信公众号和小程序的功能。2.封装好的业务逻辑有点麻烦,如果要改动会很不利,对于刚开始使用EasyWeChat的人来说增加了学习成本(要开发者对整体微信开发流程有个大致了解,起码要能看得懂微信文档,但微信文档有多费劲相信看到这篇文章的你心中已有自己的判断了...)由于笔者是宝塔面板安装,所以只遇到了fileinfo扩展没安装(宝塔点击安装即可);接着安装thinkphp6的视图。

2023-04-03 19:30:00 885

原创 linux宝塔面板安装composer的方法[全网详解]

Composer是一个PHP依赖管理器,可以方便地管理和安装PHP项目所依赖的库和软件包。Composer可以通过一个名为composer.json的配置文件来配置,该文件列出了项目所依赖的库、版本等信息。由于Composer的出现,开发人员不再需要手动下载、安装和配置PHP库,从而大大简化了PHP项目的开发和维护过程。所以宝塔面板安装composer我们需要删除禁用函数,删除之后,才可以正常安装。删除禁用函数和更新软件包后,就可以愉快安装composer了。其他诸如此类,这里不再赘述。

2023-04-03 15:07:51 4401 1

原创 windows下切换PHP-cli版本

PHP-cli是PHP Command Line Interface的缩写,指的是PHP的命令行界面。PHP-cli支持很多常用的命令行选项和参数,可以使用PHP的各种语言特性和函数库,具有很高的灵活性和扩展性,是PHP开发的重要组成部分。3.接下来加入你需要的PHP版本 作为PHP-cli运行 然后将加入的PHP路径 上移到当前PHP版本的路径的上面。首先 windows+r 输入 cmd 打开cmd命令行 输入php -v 查看当前php-cli的版本。你会看到当前的PHP-cli版本的目录路径。

2023-04-03 14:56:02 1467

原创 【MYSQL】-一行记录是怎么存储的?

MySQL 的 NULL 值是怎么存放的?MySQL 的 Compact 行格式中会用「NULL值列表」来标记值为 NULL 的列,NULL 值并不会存储在行格式中的真实数据部分。NULL值列表会占用 1 字节空间,当表中所有字段都定义成 NOT NULL,行格式中就不会有 NULL值列表,这样可节省 1 字节的空间。MySQL 怎么知道 varchar(n) 实际占用数据的大小?MySQL 的 Compact 行格式中会用「变长字段长度列表」存储变长字段实际占用的数据大小。

2023-03-31 22:30:00 201

跨年代码 烟花代码html

这是一个春节烟花特效的代码,通过HTML、CSS和JavaScript实现。代码中使用了Canvas绘图技术,模拟了真实的烟花效果,用户可以通过点击页面或者自动播放来观看烟花特效。同时,代码中还包含了丰富的参数和配置选项,用户可以根据自己的需求来调整烟花效果的颜色、大小、数量和速度等等。这个代码可以用于春节祝福、节日活动和网页装饰等多种场合,为用户带来更加丰富的体验和视觉效果。

2023-04-03

春节代码 新年代码html

以下是一份春节相关的代码资源,其中包含了多个小程序的源代码,包括春节祝福语生成器、春节红包雨游戏等等。这些代码使用HTML、CSS、JavaScript等技术实现,可以直接在浏览器中运行,为用户带来丰富的春节体验。此外,代码还包含了详细的注释和说明,方便开发者进行二次开发和修改,以满足自己的需求。无论是想要制作春节主题的网站还是小程序,这些代码都是一个不错的参考资源。

2023-04-03

jQuery实现增删改1.html

jQuery实现增删改

2021-08-05

空空如也

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

TA关注的人

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