自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

niqinge

世界因分享更美丽

  • 博客(92)
  • 资源 (1)
  • 收藏
  • 关注

原创 golang语言字符串从右方替换字符串(参考官方strings.Replace)

go语言; golang; 字符串替换

2023-07-27 10:31:18 343

原创 go反射生成指定类型的结构体数组

上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体数组 根据传入类型生成对应数组。生成string类型的数组。使用golang语言。

2023-02-03 11:09:26 525

原创 go反射生成指定类型的结构体切片,并赋值

上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体切片 根据传入类型生成对应切片, 并把值放到切片里。生成string类型的切片。使用golang语言。生成结构体切片并赋空值。生成结构体切片,并赋值。

2023-02-03 11:02:03 915

原创 go反射调用结构体对象方法

上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。golang语言使用反射机制,调用结构体相关方法,方法包含传参和返回结果。

2023-02-03 10:53:37 203

原创 go语言使用redis用作分布式锁

用redis实现分布式锁,直接上代码,代码量很少,也很简单。如有其他疑问,可以大胆留言。

2023-02-03 10:05:55 263

原创 golang chan被关闭后读写的那点事

func main() { closeReadChan() closeWriteChan() closeReadChan2()}// 从有缓冲被关闭的chan写数据, 报错: panic: send on closed channelfunc closeWriteChan() { wg := sync.WaitGroup{} ch := make(chan int, 100) wg.Add(2) go func() { defer w.

2021-11-02 20:12:21 435

原创 golang实现协程之间的调用栗子

题目:有一个独立的do方法输出“do”的字样, 有3个协程;A协程里触发B协程输出10次do字样,随后B协程告诉A协程做完10次输出,接着A协程输出一次do字样,接着A协程触发C协程关闭B协程,随后C协程关闭, A协程关闭。package mainimport ( "context" "fmt" "sync" "time")func main() { aChan := make(chan int) bChan := make(chan int) cChan := mak

2021-08-19 19:20:14 295

原创 linux安装及启动nsq流程

-- 获取资源包wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-0.3.6.linux-amd64.go1.5.1.tar.gz-- 移动文件到合适的目录mv nsq-0.3.6.linux-amd64.go1.5.1.tar.gz ~--解压到合适的目录tar -zxvf nsq-0.3.6.linux-amd64.go1.5.1.tar.gz-- 添加到PATHsudo vim ~/.profile添加一

2021-08-05 17:35:51 309

原创 golang反射之遍历struct字段及内容

package mainimport ( "fmt" "reflect")type BaseData struct { // mysql DbUrl string `yaml:"db_url" name:"数据库地址"` DbUser string `yaml:"db_user" name:"数据库用户名"` DbPassWord string `yaml:"db_pass_word" name:"数据库密码"` DbName .

2020-06-05 10:09:45 7070

原创 golang语言之互斥锁详解

互斥锁是传统的并发程序对共享资源进行访问控制的主要手段,在Go中,似乎更推崇由channel来实现资源共享和通信。它由标准库代码包sync中的Mutex结构体类型代表。只有两个公开方法:调用Lock()获得锁,调用unlock()释放锁。 使用Lock()加锁后,不能再继续对其加锁(同一个goroutine中,即:同步调用),否则会panic。只有在unlock()之后才能再次Lock()。...

2020-03-27 00:18:32 465

原创 golang面试经之笔试3

// 以下代码输出什么type student struct { Name string Age int}func pase_student() { m := make(map[string]*student) stus := []student{ {Name: "huang", Age: 24}, {Name: "li", Age: 2...

2020-03-26 18:59:38 384

原创 golang面试经之笔试2

// 以下代码输出什么?func main() { runtime.GOMAXPROCS(2) wg := sync.WaitGroup{} wg.Add(10) for i := 0; i < 10; i++ { go func(i int) { fmt.Println("i: ", i) wg.Done()...

2020-03-26 18:44:43 178

原创 golang面试经之笔试1

// 以下代码输出什么内容?type People struct{}func (p *People) ShowA() { fmt.Println("showA") p.ShowB()}func (p *People) ShowB() { fmt.Println("showB")}type Teacher struct { People}func (t...

2020-03-26 18:19:09 303

原创 golang面试经之channel之one

下面一段代码 `len(m)` 不一定会打印为 10,为什么?。如果想要 `len(m)` 打印为 10,应该怎么修改代码?func main() { const N = 10 m := make(map[int]int) wg := &sync.WaitGroup{} mu := &sync.Mutex{} wg.Add(N)...

2020-03-08 22:17:55 481

原创 redis的安装和启动详解 redis install

mac:$: brew update$: brew install redis$: brew services start redis$: redis-server /usr/local/etc/redis.conf$: redis-cli pinglinux:$: wget http://download.redis.io/releases/redis-2.8.17.tar.g...

2020-01-13 17:27:56 272

原创 kubernetes常见问题及解决方法

问题1:kubernetes执行kubectl get nodes发生问题:Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify cand...

2019-05-20 11:54:20 1465 2

原创 kubernetes常用命令

Kubernetes 主控组件(Master)包含三个进程,都运行在集群中的某个节上,通常这个节点被称为 master 节点。这些进程包括:kube-apiserver、kube-controller-manager和kube-scheduler。 集群中的每个非 master 节点都运行两个进程: kubelet,和 master 节点进行通信。 kube-proxy,一种网络代理,将...

2019-05-14 16:42:24 630

原创 kubernetes详解之使用 kubeadm 创建一个单主集群

使用 kubeadm 创建一个单主集群kubeadm能帮助您建立一个小型的符合最佳实践的 Kubernetes 集群。通过使用 kubeadm, 您的集群会符合Kubernetes 合规性测试的要求. Kubeadm 也支持其他的集群生命周期操作,比如升级、降级和管理启动引导令牌。因为您可以在不同类型的机器(比如笔记本、服务器和树莓派等)上安装 kubeadm,因此它...

2019-05-14 16:21:25 402

原创 使用golang语言判断字符串是否回文,如果不是找出最大回文

长话短说,上代码:import "fmt"func HuiWen () { str := "1234566" //判断是否回文 for i := 0; i < len(str)/2 - 1; i ++ { if str[i] != str[len(str)-i -1] { fmt.Println("不是回文字符串") ...

2019-05-04 23:37:17 1095

原创 docker使用详解-NiQinGe

查询镜像: docker search 搜索关键字例如:docker search nginx拉取镜像: docker pull 镜像名例如:docker pull nginx基于某个镜像创建实例:docker run --name 实例名-d 镜像名docker run --name test-docker -d nginx查到当前运行和未运行...

2019-04-29 15:29:54 529

原创 redis的使用详解

启动redis:安装目录/src/redis-server登录redis:安装目录/redis-cli添加缓存:set key名称 内容例:set testname "123"获取某个缓存内容:get keyname例:get testname输出:123清空redis所有缓存:flushall关闭redis:shutd...

2019-04-28 18:19:22 187

原创 nsq的搭建超详细

对于什么是nsq,请参考https://blog.csdn.net/chinawangfei/article/details/80341688。在本地搭建时,请先到nsq官网熟悉搭建流程,具体网址为:https://nsq.io/overview/quick_start.html。搭建NSQ实时分布式消息平台,主要启动三个模块nsqlookupd 、nsqd、nsqadmin。1.在第...

2019-04-10 16:33:01 1541

原创 git命令

# 查看分支git branch# 新建分支,并切换到新建分支git checkout -b 分支名# 查看修改的文件git status# 获取已经关联的远端代码git pull# 提交到gitgit commit -am '说明'# 提交到远端git push# 查看远端分支git branch -r...

2018-09-11 20:06:56 240

原创 go语言switch的用法

switch会根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:switch i { case 0:fmt.Printf("0") case 1:fmt.Printf("1") case 2:fallthrough case 3:fmt.Printf("3") case 4, 5, 6:fmt.Printf("4, 5,...

2018-08-14 09:58:44 627

原创 go语言中map类型的用法

map是一堆键值对的未排序集合。比如以身份证号作为唯一键来标识一个人的信息,则这个 map可以定义为代码清单 2-3所示的方式。代码清单2-3 map1.go package mainimport "fmt"// PersonInfo是一个包含个人详细信息的类型 type PersonInfo struct {ID stringName string Address string...

2018-08-13 19:20:31 2624

原创 go语言基础篇2

1、类型:布尔类型:bool。 整型:int8、byte、int16、int、uint、uintptr等。  浮点类型:float32、float64。 复数类型:complex64、complex128。  字符串:string。 字符类型:rune。 错误类型:error。此外,Go语言也支持以下这些复合类型:  指针(pointer) 数组(array)...

2018-08-13 17:23:49 226

原创 go语言基础篇1

package mainimport ( "fmt")func main() { fmt.Println("Hello World") fmt.Println(getStr()) getLength() fmt.Println() values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} resultChan := make(ch...

2018-08-09 17:57:51 250

原创 递归算法

其实简单的说递归算法只要遵循两个元作为就可以了。(1)必须要有出口。(2)执行时要往出口方向。例1:求N!。使用递归算法可以很简洁,如下:long fact(int i){        if(i == 1){ return 1;}        else{  return i*fact(i-1); }}例2:设一维数组A的元素A[k1]~A[k2]中存放着整数,用递归方法求出他们中的最大值。分析...

2018-04-12 18:06:26 298

原创 图及图的存储方式

图分为有向图和无向图两种。有向图:若图中每条边都是有向的,则称为有向图。从顶点i到顶点j的有向边&lt;i,j&gt;称为弧,起点i称为弧尾,终点j称为弧头。无向图:若图中的每条边都是无方向的,称为无向图;其中若一个无向图具有n个顶点,而每个顶点与其他n-1个顶点之间都有边,则称为无向完全图(完全图)。图的存储结构。邻接矩阵表示法:指利用一个矩阵来表示图中顶点之间的关系;例如有向图和无向图可以这样...

2018-04-12 17:44:25 500

原创 二叉树的遍历之中序遍历

中序遍历二叉树的操作定义如下,如二叉树为空,则返回空操作。否则:(1)中序遍历跟的左子树。(2)访问根节点。(3)中序遍历跟的右子树。

2018-04-12 17:14:50 272

原创 离散数学中稀疏矩阵详解

稀疏矩阵定义:在一个矩阵中,若非零元素的个数远大于零元素的个数,且非零元素的分布没有规律,则称为稀疏矩阵。对于稀疏矩阵,存储非零元素时必须同时存储其位置(即行号和列号),称为三元组,形式为(i,j,value),表示第i行第j列放置的值为value。譬如一个6行7列的稀疏矩阵,其三元组为((1,2,12),(1,3,9),(3,1,-3), (3,6,14),(4,3,24),(5,2,18),(...

2018-04-12 17:04:51 1187

原创 取每个员工最后一个月的的工资详情

有两张表,一张是员工信息表T_EMP_INFO,字段有USER_ID,USER_NANE;一张是工资表T_WAGE_INFO,字段有ID,USER_ID(关联员工表字段),SALERY(工资),MONTH(月份);1、查询每位员工最近一个月发工资的情况:SELECT e.NAME,MAX(d.MONTH),d.* from T_EMP_INFO e LEFT JOIN T_WAGE_INFO d ...

2018-04-08 10:29:44 663

原创 mysql、oracle数据库sql详解大全

1、去重,使用字段:DISTINCT例如:SELECT DISTINCT user_name FROM tableName;表示查询无重复的表名为tableName中的user_name字段。2、分页,使用字段:limit;使用limit时后面可跟一个参数或者两个参数,如果是跟两个参数时使用逗号隔开。例1:select user_name FROM tableName limit 10;会返回ta...

2018-04-03 17:57:12 308

原创 tcp协议和udp协议

tcp/ip分层模型由4个层次构成,即应用层、传输层、网际层和网络接口层。传输层协议有tcp和udp。tcp协议也就是传输控制协议,是整个tcp/ip协议簇中最重要的协议之一,它在IP提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。其最主要和最重要的是tcp采用了一种叫重发的技术,具体的说,在tcp传输过程中,发送方启动一个定时器,然后将数据包发出,当接...

2018-03-30 16:23:29 414

原创 spring+springMvc+Mybatis简单案例超详细

上一篇文章介绍了spring+springMvc+Mybatis的搭建,地址https://blog.csdn.net/niqinge/article/details/79280204现在来仔细介绍一个简单的案例。在搭建完ssm框架之后,不懂搭建的朋友可以先看看我的上一篇文章地址https://blog.csdn.net/niqinge/article/details/792802041、先建立一...

2018-03-29 18:15:46 11446 9

原创 try、catch、finally详解

第一种情况:try、catch、finally三段代码中都含有return时,则以finally中的retrun为准,其它return均无效;但是其它return之前的代码有效。第二种情况:try和catch中年含有return,但是finally中不含return;则代码会在执行try/catch中return之前去执行finally中的代码块,然后再执行try中的return操作。结论:1、不...

2018-03-26 17:39:27 1671

原创 java常用排序算法

1、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的...

2018-03-21 14:46:56 221

原创 linux下常用vi操作命令

   上一篇文章我们阐述了linux常用的命令,这篇文章主要阐述linux系统的vi操作指令。编辑器: vivi 的工作模式 编辑模式 插入模式 命令模式 shell 切换 选项设置 vim 和 gvim 的高级特色 1.6.1  vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移...

2018-03-21 10:15:34 2517

原创 linux常用命令大全

--  unix系统操作命令大全用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。1.1 登录  当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成功。这时,屏幕上会显示出一些信息和命令提示符。如:  Login: guest [Ente...

2018-03-21 10:12:45 322

原创 Java web项目目录介绍

web 程序一般都会部署在Tomcat的目录webapps下,而在web项目中,也有自己特有的目录结构,具体如下:/web:应用根目录。/WEB-INF/:Tomcat会隐藏该文件夹下所有的文件及文件夹。保护它们无法通过浏览器直接访问。/WEB-INF/web.xml:Web程序最主要的配置文件。/WEB-INF/classes/:主要用来存放编译后的文件,类文件都会放置在此目录中,包括Servl...

2018-03-20 15:29:27 3369

基于Android Studio开发手机本地文件浏览器

本项目编译环境在Android Studio 2.1,在手机上运行时需要注意手机系统版本必须在4.0—6.0之间(包含)。

2016-06-14

空空如也

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

TA关注的人

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