自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (4)
  • 收藏
  • 关注

原创 golang创建式设计模式---工厂模式

工厂模式(Factory Method Pattern)是一种设计模式,旨在创建对象时,将对象的创建与使用进行分离。通过定义一个工厂类,这个类具有创建不同具体产品对象的方法。用户只需与工厂类交互,告诉工厂自己想要什么类型的产品,工厂就会负责创建并返回相应的产品对象。这样做的好处是使得系统的架构更加清晰、灵活,方便扩展和维护产品的种类,同时也降低了代码之间耦合度。简单来说,就是有个专门负责生产对象的“地方”,根据需求生产出对应的对象。其uml类图由图可知,工厂方法模式的角色组成如下。

2024-05-19 17:13:56 599 1

原创 golang创建式设计模式------单例模式

单例模式(Singleton Pattern)是一种常用的设计模式。单例模式的类提供了一种访问其唯一对象的方法,该对象可以直接访问,无须实例化。单例模式保证了一个类的对象只存在一个,同时维护一个对其对象的全局访问点。

2024-05-14 00:40:38 671

原创 基于gin框架的文件上传(逐行解析)

记录一下使用gin框架完成一个文件上传的功能,一下是实现该功能的代码,适合小白,代码都有逐行解释!后续使用postman提交一个文件参数进行测试

2024-05-12 09:55:04 234

原创 如何在postman上提交文件格式的数据

今天在写一个文件上传的功能接口时,想用postman进行提交,花了些时间才找到在postman提交文件格式的数据。1.打开postman,选择POST提交方式,然后在Params那一行的Headers字段中添加。选择文件类型在KEY字段的那一行的右下角进行选择,如图。字段的那一行的右下角进行选择,如图。2.在Body字段上添加。

2024-05-02 22:46:39 457

原创 strcov的常用方法

strconv是 Go 语言标准库中的一个包,用于进行基本数据类型和字符串之间的转换。以下是strconvAtoi和ItoaAtoi函数用于将字符串转换为整数类型,Itoa函数则用于将整数类型转换为字符串类型。Parse系列函数:包括ParseIntParseBool和ParseFloat等函数,用于将字符串解析为指定类型的值。Format系列函数:包括FormatIntFormatBool和等函数,用于将基本数据类型转换为字符串类型。Append系列函数:包括AppendIntAppendBool。

2024-05-01 21:06:42 14

原创 gin框架学习

一个go语言的web框架Gin框架允许开发者在处理请求的过程中,加入用户自己的钩子(Hook)函数。这个钩子函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等。import ("fmt""net/http""time"name, ok := c.Get("name") //跨中间件取值if!ok {name = "匿名用户"})// 定义一个中间件,统计处理函数的耗时//计时c.Next() //调用后续的处理函数。

2024-02-03 18:56:54 1002

原创 基于go语言开发的海量用户及时通讯系统

这是一个基于go语言的海量用户通讯系统,也是在学习golang的过程中必须做的一个项目。下面我将我完成这个项目的步骤分享给大家!!

2023-12-17 11:16:54 350

原创 go学习redis的学习与使用

1).Redis是NoSQL数据库,不是传统的关系型数据库官网: http://redis.io/ 和http://www.redis.cn/2).Redis:REmote DIctionary Server(远程字典服务器),Redis的性能非常高,单机可以达到15W gps.通常适合做缓存,也可以持久化3)是完全开源免费的,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化Nosql数据库,是最热门的NoSql数据库之一,也称为数据结构服务器。

2023-12-16 22:45:12 276

原创 go学习之网络编程

Golang的主要设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端程序必不可少也是至关重要的一部分网络编程有两种1)TCP socket编程,是网络编程的主流。之所以交TCP socket编程,是因为底层是基于Tcp/ip协议的,比如QQ聊天2)b/s结构的http编程。我们使用浏览器去访问服务器时,使用的就是http协议,而http底层依旧是tcp socke实现的,比如京东商城(这属于go web开发范畴)

2023-12-14 22:27:16 420 1

原创 go学习之反射知识

1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind)2)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段、方法)3)通过反射,可以修改变量的值,可以调用关联的方法4)使用反射,需要import (“reflect”)

2023-12-12 22:16:11 301

原创 go学习之goroutine和channel

1)进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位2)线程是进程的一个执行实例吗,是程序执行的最小单位,他是比进程更小的能独立运行的基本单位3)一个进程可以创建和销毁多个线程,同一个进程中的多个线程可以并发执行4)一个程序至少有一个进程,一个进程至少有一个线程1)M:操作系统的主线程(是物理线程)2)P:协程执行需要的是上下文3)G:协程1)channel本质就是一个数据结构-队列2)数据是先进先出[FIFIO frist in first out]

2023-12-02 13:29:39 315 1

原创 go学习之json和单元测试知识

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。key-valJSON是2001年开始推广使用的数据格式,目前已成为主流的数据格式JSON易于机器解析和生成,并有效地提升网络传输效率,通常程序在网络传输时会先将数据(结构体、map等)序列化成json字符串时,在反序列化恢复成原来的数据类型(结构体、map等)。这种方式已然成为各个语言的标准。

2023-11-30 23:09:45 439

原创 go学习之文件操作与命令行参数

文件对于我们并不陌生,文件是数据源(保存数据的地方)一种,比如大家经常使用的word文件,txt文件,excel文件…都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频声音文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径os.File结构体封装所有文件相关操作。

2023-11-29 22:44:03 503 2

原创 go学习之简单项目

把记账软件的功能封装到一个结构体中,然后调用该结构体的方法来实现记账,显示明细就可以了,结构体的名字为FamilyAccount。y/n",必须输入正确的y/n,否则循环输入指令,直到输入y或者n。编写customerView.go另外可以把customer.go和customerDervice.go协商。需要编写CustomerView和customerService,Customer类。2.当没有任何收支明细时,提示“当前没有收支明细。思路分析:给出的界面完成,主菜单的显示,当用户输入4的时候就退出。

2023-11-19 19:11:22 400 1

原创 go学习之接口知识

interface类型可以定义一组方法,但是这些不需要实现。并且interface不能包含任何变量,到某个自定义类型(比如结构体Phone)要使用的时候,再根据具体情况把这些方法写出来对初学者讲,理解接口不算太难,难的是不知道什么时候使用接口,下面几个例子来解释1)现在美国要制造轰炸机,武装直升机,专家只需要把飞机需要的功能/规格定下来即可,然后让别人具体实现即可2)就是做一个项目,在接口中定义规范让其他人去实现所定的规范变量(实例)具有多种形态。

2023-11-12 20:13:11 487

原创 go的面向对象学习

在某些情况下,我们需要声明(定义)方法,比如Person结构体,除了有一些字段外(年龄,姓名…)Person结构体还有一些行为比如:可以说话、跑步。。通过学习,还可以做算术题,这时要使用方法才可以完成Golang中的方法是作用在指定的数据类型上的(即。和指定的数据类型绑定)因此自定义类型都可以有方法,而不仅仅是structtest方法和Person类型绑定test方法只能通过Person类型的变量来调用,而不能直接调用,也不能使用其他类型变量来调用下面的使用方式都是错误的dog.test()

2023-10-06 15:29:32 428 2

原创 go学习之数组与Map

数组的定义var 数组名[数组大小] 数据类型赋初值 a[0]=1 a[1]=30 ...数组内存(重要)//当我们定义完数组后,数组的各个元素有默认值0fmt.Printf("数组的地址是:%p",&intArr)//数组的地址是:0xc0420082c0fmt.Printf("数组首地址是:%p",&intArr[0])////数组的首地址是:0xc0420082c0数组的地址可以通过数组名来获取:&intArr数组的第一个元素的地址就是数组的首地址。

2023-09-23 10:57:25 304

原创 go学习之函数知识

完成一个需求:输入两个数,再输入一个运算符(±*/),得到结果使用传统方法:分析代码上的问题:为完成某一个功能的程序指令(语句)的集合,称为函数在Go中,函数分为:自定义函数、系统函数(查看GO编程手册)函数基本语法:1)形参列表:表示函数的输入2)函数中的语句:表示为了实现某一个功能的代码块3)函数可以有返回值,也可以没有案例入门:2.包为什么要用包1)在实际的开发中,我们往往需要在不同的文件中,去调用其他文件的定义的函数,比如main.go中,去使用utils.go文件中的函数,如何实现?2)现

2023-09-19 20:13:13 512

原创 go学习之流程控制语句

在程序中,程序运行的流程控制决定程序如何执行的,是我们应该掌握的,主要有三大流程控制语句。

2023-08-27 22:22:03 647

原创 go学习-指针 标识符

1)基本数据类型,变量存的值,也叫值类型2)获取变量的地址用&,比如 var num int ,获取num的地址:&num3)指针类型,变量存的是一个地址,这个地址指向的空间存的才是真正值,比如: var ptr *int =&num4)获取指针类型所指的值,使用*,比如:var *ptr int,使用 *ptr获取p指向的值5)举例说明import("fmt"//演示golang中的指针类型//基本数据在内存的布局// i的地址是多少 &i。

2023-08-26 17:21:10 381

原创 go语言学习之有关变量的知识

在程序开发中,我们经常将基本数据类型转换成string或者将string转换为基本数据类型基本类型转为string类型方式1:fmt,Sprintf(“%参数”,表达式)//是用第一种方式来转换 fmt.Sprint()str = fmt.Sprintf("%d",num1) //num1转化为stringfmt.Printf("str type %T str=%v\n",str,str) //结果为string 和99Sprint根据format参数生成格式化的字符串并返回该字符串。

2023-08-25 21:20:27 603

原创 go学习之go的语法知识

go支持C语言风格的/* */块注释,也支持C++风格的//注释,行注释更通用,块注释主要针对包的详情说明或者屏蔽大块的代码。4)go方法、一由条条语句构成,每个语句后不需要分号(go语言会在每行后自动加上分号),这也体现出go语言的简洁性。5)go编译是一行一行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则会报错。Path:指令 sdk:bin目录 go.exe godoc.exe gofmt.exe。SDK就是啊软件开发工具包,我们做go开发,首先需要安装并配置好‘go。

2023-08-24 22:25:36 373

原创 go学习一之go的初体验

​ 通过运行进行对比前者执行速度更快,后者执行速度更慢,因为前面是直接运行二进制语言,后面还要先进行编译成二进制的语言再执行,实际的开发中还是先进行编译成二进制文件。注意:通过go run 命令可以直接运行hello,go程序(类似于执行一个脚本的文件的形式)在真实的生产环境会先编译再去运行go程序。2)如果我们是直接go run go源代码,那么要在另一台机器上运行,也需要go开发环境,否则无法运行。表示该hello.go文件所在的包是main,在go中每一个文件都要归属于一个包。

2023-08-23 23:42:19 454

原创 使用linux 脚本一键安装nignx

还在为安装nginx繁杂的步骤而烦恼吗?给我一个x ,我来帮你安装。

2023-05-16 21:48:29 232

原创 linux shell脚本学习

​ Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。在脚本中,您会不会奇怪,哪里来的$1和$2,这其实就是shell脚本的预设变量,其中$1的值就是在执行的时候输入的1,而$2的值就是执行的时候输入的$2,当然一个shell脚本的预设变量是没有限制的,这回您明白了吧。实际上,shell脚本在执行的时候后边是可以跟参数的,而且还可以跟多个。上面的结构中,不限制value的个数,*则代表除了上面的value外的其他值。

2023-01-23 12:24:18 12404 10

原创 手把手教你搭建K8S集群

集群中,也可以对容器应用进行排错,还能管理集群本身及其附属资源。首先创建三台centos7的虚拟机,装虚拟机的话大家可以参照网上资料,非常容易。在各主机上进行时钟同步,时钟同步服务器可自行配置,此处选择阿里云的时钟服务器。好了,k8s平台就搭建好了,能看到这,我就很欣慰了搭建过程有点长。若下面有的源已配置,则可以略过相应的操作!查看当前系统的内核版本,以及主机名是否符合配置要求管理节点。获取运行在集群中的应用的概览信息,也可以创建或者修改。由于默认的镜像仓库在国外可能无法访问,因此修改。

2022-11-20 00:15:43 1836

原创 在centos7中zookeeper集群的搭建步骤

这是使用centos7系统对zookeeper集群安装配置操作。简洁明了

2022-10-14 23:42:02 1115

原创 重温C语言十五---C语言文件管理操作

与文件相关的函数大部分在stdio.h里面文件,对我们并不陌生,文件是数据源(存放数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件…都是文件。文件最主要的作用就是保存数据,他既可以保存一张图片,也可以保持视频,声音…1)讲解了C语言处理的标准输入和输出设备,我们将介绍,如何创建打开,关闭文本文件或二进制文件2)一个文件,无论他是文本文件还是二进制文件,都是代表了一系列的字节。C语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。...

2022-09-01 10:09:45 592

原创 重温C语言十四-----结构体与共用体

张老太养了两只猫猫:一只名字叫做小白,今年3岁,白色。还有一只叫小花,今年100岁,花色,请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,则显示张老太没有这只猫猫解决方案:传统技术解决:1)单独定义变量解决char cat1Name [ 10 ] = "小白";char cat1Color = "白色";}2)我们学习了数组,他是一组具有相同类型的数据的集合。...

2022-08-28 09:31:38 512

原创 重温C语言十三------动态内存分配

C99标准把以上malloc,calloc,realloc函数的基类型定义为void类型,这种指针称为无类型指针(typeiess pointer),即不指向哪一种具体的类型数据,只表示用来指向一个抽象的类型的数据,即仅提供一个纯地址。可以定义一个基类型为void的指针变量(即void *型变量),它不指向任何类型的数据。分配堆上的内存有一些系统开销,所以分配许多小的内存块比分配几个大的内存块的系统开销大。动态创建数组,输入5个学生的成绩,另外一个函数检测成绩低于60分的,输出不合格的成绩。

2022-08-21 10:29:53 450

原创 重温C语言十二---指针

1)指针是C语言的精华,也是C语言的难点2)指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。3)获取变量的地址,用&,比如:int num=10,获取了num的地址:&num4)指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值 比如:ptr 就是指向int类型的指针变量,即ptr是 int *类型。5)获取指针类型所指向的值,使用: *(取值符号),比如 int * ptr,使用 *ptr 获取ptr指向的值。

2022-08-19 20:09:36 413

原创 重温C语言十一 ----数组

数组可以存放多个同一个类型数据。数组也是一种数据类型,是构造类型。传递是以引用的方式传递(及传递是地址)数据类型 数组名 [ 数组大小 ] int a [ 5 ];//定义int 类型大小为5的数组 赋初值a [ 0 ] = 1;数组名[下标] 比如:你要使用a数组的第三个元素a[2]案例:从终端循环输入5个数,保存到double数组,并输出//定义一个数组,循环输入5个数,然后再将他们都打印出来 double arr [ 5 ];i ++) {printf("请输入1个成绩:\n");...

2022-08-16 21:04:21 1107

原创 一个冒泡排序引发的思考

​ 正如这部分关于冒泡排序的代码当我封装成maopaos(int arr[],int len)函数的时候,我总觉的两个参数很麻烦。当我写好冒泡排序的相关代码,准备将它封装成一个函数的时候,那括号里面的参数引起了我深深的思考。这就说明了**suzu(int arr[])**中的arr的确是一个存放地址的变量。2.所谓引用传递即是:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值)所谓引用传递即是:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值)显然函数内的数组长度是不对的。..

2022-08-15 23:25:28 155

原创 java设计模式之---单例模式

​ 单例模式指的是:保证类在内存中只有一个实例对象。

2022-08-10 23:49:44 220

原创 重温C语言10---预处理与宏定义

1.在使用空函数之前,应该用#include引入对应的头文件。这种以**#号开头的命令称为预处理命令**-2.这些在编译之前对源文件进行简单加工的过程,称为预处理(即预先处理、提前处理)-3.预处理主要是处理以#开头的命令,例如**#include **等。预处理命令要放在所有函数之外,而且一般都放在源文件的前面-4.预处理是C语言的一个重要功能,由预处理程序完成。当对源文件进行编译时,系统将自动调用预处理程序对源程序中的预处理部分作处理。处理完毕自动进入对源程序的编译。...

2022-08-08 23:10:35 676

原创 重温c语言九----函数的学习

1.基本语法返回类型 函数名 (形参列表){执行语句....//函数体return 返回值;//可选}-2.解释:1)形参列表:表示函数的输入2)函数的语句:表示为了实现某一功能代码块3)函数可以有返回值,也可以没有,如果没有返回值,返回类型声明为void;案例:输入两个数,再输入一个运算符(+,-*,/)得到结果# include //说明 /** 1.函数名call* 2.有返回值double。...

2022-08-07 09:36:00 362

原创 教你使用java彻底掌握 “约瑟夫环”

​。

2022-08-05 15:54:06 1427

原创 重温C语言八----程序流程控制

switch(表达式){case常量1//当语句块1;break;case常量2语句块2;break;...case常量n语句块n;break;defaultdefault语句块;break;}*案例*请编写一个程序,该程序可以接收一个字符,比如*a表示星期一。。。依次类推*根据用户输入的信息提示相应的信息*switch语句完成printf("请输入一个字符\n");//任何有值的都可以看做表达式switch(c1){...

2022-07-27 20:03:55 524

原创 金字塔,原来这么简单

依稀记得在大一的时候学多层嵌套循环的时候对下面这些当初让我瑟瑟发抖的“金字塔”,由“矩形”–>“直角”–>“金子塔”–>“空心金字塔”-->“?接下来我们在来看下一个直角三角形(单侧金子塔),掌握这个也就掌握了我们熟知的“九九乘法表”接下来就是更为复杂的标准金字塔了,这里开始就要在原有的基础上在添加一个循环输出空格。然而在我这段重温C语言的经历中,我终于搞懂了这段七十二变!首先咱们来看第一个最简单的矩形五行星星。以后有机会有一定要去看看金字塔。最后就是压轴抽芯金字塔了。...

2022-07-24 23:08:36 1112

原创 重温C语言七-----二进制与位运算

对于整数,有四种表示方式。

2022-07-21 20:18:04 1327

SSM基础框架搭建(整合了springmvc,mybatis,spring)

都说ssm框架搭建麻烦,这是一个已经搭建好的ssm框架。整合了mybatis,spring,springmvc以xml的形式整合了spring框架,使你在配置bean的操作上有一个清晰的认识,适合新手学习参考

2022-05-02

springboot员工管理系统(整合mybatis版)

本项目是springboot+mybatis的员工管理系统

2022-05-02

JAVA排序算法收集处

这里包含了使用java语言的几大排序算法包括:插入排序、冒泡排序、归并排序、基数排序、希尔排序、快速排序、基数排序、选择排序。 jdk版本1.8 打开方式:解压后打开eclipse直接导入项目即可查看和运行代码。方便学习,提供有详细的注释,帮你理解这些代码。

2022-04-22

springboot员工管理系统

跟着狂神学做的springboot员工管理系统,路上遇过不少坑,但是还是一一克服。本项目没有使用数据库,通过编写dao层类模拟数据库的数据操作,降低因数据库绑定的复杂度从而专心于业务开发,有助于理解springweb项目的开发流程和构造过程,数据是通过map集合自己构造,非常适合新手参考。在这里与你一同分享,一起在springboot的世界中共同进步,成为springboot开发高手。欢迎下载导入使用!

2022-04-18

空空如也

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

TA关注的人

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