自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luyaran的博客

一名php小菜鸟的成长故事

  • 博客(1753)
  • 资源 (16)
  • 问答 (17)
  • 收藏
  • 关注

原创 Golang面试题目-并发题目(选择题)

1、阅读下例代码,从以下四个选项中选择代码执行结果(Mutex相关)。package main​import ( "fmt" "sync")​var mu sync.Mutexvar chain string​func main() { chain = "main" A() fmt.Println(chain)}​func A() { mu.Lock() defer mu.Unlock() chain = chain + " --> A" B()}​func B() { ch

2021-09-27 17:18:22 946 2

原创 Golang面试题目-常见语法问题(四)

1、写出下例代码出现的问题。package main​import ( "fmt")​func main() { var x string = nil if x == nil { x = "default" }​ fmt.Println(x)}解析:Go中字符串类型不能赋值nil,也不能跟nil进行对比。2、写出下例代码打印的内容。package main​import ( "fmt")​const ( a = iota b = iota)const ( name

2021-09-27 16:22:39 203

原创 Golang面试题目-程序设计题目(二)

​题目一场景:某一高并发web服务器需限制IP的频繁访问,现模拟100个IP同时并发访问该服务器,每个IP需访问1000次。题目一要求:每个IP三分钟内只能访问一次。题目一内容:修改以下代码完成上述题目要求,要求能成功输出【success100】。题目代码如下:package main​import ( "fmt" "time")​type Ban struct { visitIPs map[string]time.Time}​func NewBan() *Ban { return

2021-09-27 16:19:09 465 1

原创 Golang面试题目-程序设计题目(一)

题目一:需要实现两个goroutine,这里分别命名为A、B,其中A用来产生随机数并将随机数写入channel中,B用来从channel中读取随机数并将随机数打印到标准输出,最后要求B最多在标准输出打印出五个随机数。实现上述题目需要注意以下几点: Go中goroutine是非阻塞的。 channel初始化为无缓冲时,读写都是阻塞的,通常用for循环来读取channel中的数据,当管道关闭后,for循环退出。 Go中专用select case语法来从管道中读取数据。

2021-09-24 15:47:21 307

原创 Golang面试题目-常见语法问题(三)

1、写出下例代码输出内容,并说明原因。package main​import ( "fmt" "runtime" "sync")​func main() { runtime.GOMAXPROCS(1) wg := sync.WaitGroup{} wg.Add(20) for i := 0; i < 10; i++ { go func() { fmt.Println("i: ", i) wg.Done() }() }​ for i := 0; i

2021-09-24 15:46:08 135

原创 Golang面试题目-常见语法问题(二)

1、说明下例代码书写是否正确。var value int32​func SetValue(delta int32) { for { val := value if atomic.CompareAndSwapInt32(&value, val, (val + delta)) { break } }}解析:atomic.CompareAndSwapInt32函数不需要循环调用。2、下例代码运行后为什么会爆异常?package main​import

2021-09-23 15:47:51 206

原创 Golang面试题目-常见语法问题(一)

1、下例代码能否运行?为什么?package main​type Param map[string]interface{}type Example struct { Param}​func main1() { example := new(Example) example.Param["test"] = 1}解析: main函数名称定义不能加数字。 new关键字无法初始化Example结构体中的Param属性,所以直接对example.Param进行赋值操作会出错。

2021-09-23 15:46:20 142

原创 Golang面试题目-使用两个goroutine交替打印数字和字母

题目:使⽤两个goroutine交替打印序列,⼀个goroutine打印数字, 另外⼀个goroutine打印字母,实现效果如下:解答:题目要求用两个goroutine来交替打印数字和字母,核心问题是交替这两个字,涉及到两个进程之间的通信问题了,需用channel来控制打印的进度。使用两个channel来分别控制打印数字的goroutine(A)和打印字母的goroutine(B)序列,A完成后通过channel通知B进行字母打印,B完成后通知A进行数字打印,然后周而复始运行。

2021-09-23 15:44:55 1417

原创 面试官:来,用Golang设计并实现一个有getMin功能的栈~

​题目:在实现栈的基本功能基础上,再实现返回栈中最小元素的操作。要求: pop、push、getMin操作的时间复杂度都是O(1)。 设计的栈类型可以使用现成的栈结构。 解答:维护两个栈,一个栈保存当前栈中的元素,其功能和正常的栈一样,记为stackData,另一个保存每一步操作的最小值,记为stackMin,调用getMin方法时,返回stackMin栈的栈顶元素即可。具体实现方案有AB两种。A压入数据规则: 假设当前数据为newNum,先将其压入st

2021-09-23 15:43:15 133

原创 设计一个递归函数来逆序一个栈,用Golang实现

题目:一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底依次为1、2、3、4、5,也就是实现栈中元素的逆序。要求:只可以用递归函数来实现,不能使用其它数据结构。解答:用两个递归函数处理。1、将stack栈底元素返回并移除,假设从栈顶到栈底依次为3、2、1,这个函数的变化过程如下:2、逆序一个栈,假设从栈顶到栈底依次为3、2、1,这个函数的变化过程如下:来看下上述方案的Golang代码实现:/* *

2021-09-23 15:40:56 89

原创 Golang面试题目-字符串是否一致验证

题目:给定字符串A、B,B为A排序后的结果,设计一算法验证A、B内容是否一致。要求: 大小写为不同字符(考虑空格对算法精度的影响)。 输入字符串A、B,返回bool,true为相同,false为不同。 字符串A、B长度小于或等于5000。 解答:先验证字符串A、B长度小于或等于5000,之后只需要循环遍历B中的字符在A中是否都存在。案例如下:package mainimport "strings"func ABIsSame(strA, strB

2021-09-22 17:10:58 417 1

原创 Golang面试题目-字符串替换和翻转操作

题目:设计一个方法,将字符串A中空格全部替换为【%20】。要求: A有足够的空间存放新增字符。 A的真实长度小于或等于1000。 A由大小写的英文字母组成。 输入A,返回替换后的A。 解答:需操作两步,首先验证A是否仅包含英文字母,其次进行空格替换。案例如下:package mainimport ( "errors" "strings" "unicode")func ReplaceString(str string) (

2021-09-22 17:07:42 459 1

原创 肿么办?Redis主从复制时断网了!!!在线等,挺急的~

⼀、主从模式配置Redis主从大家不陌生,但不会经常配置主从,所以先简单看下主从配置。​1、主从模式 Redis中设置主从的方式很简单,有两种:配置文件redis.conf中设置slaveof方式(永久)。直在客户端执⾏slaveof ip port的方式(临时)。2、主-从-从模式主-从-从的模式的配置也与上边操作类似,在这里就不赘述了。⼆、主从⼀致性原理了解主从配置后咱们进入正题。主从中,通常是主库写数据,从库读...

2021-09-16 14:44:57 216

原创 What F**k?Redis竟然浪费内存!!!

​大内存空间大小对Redis来说至关重要。内存越多,存储的数据越多,但有时明明空间很大,内存使用率却不是很理想,这就诡异了。⼀、查看内存使用情况Redis中查看内存相关信息在命令⾏输⼊【info memory】就可看到各种相关数据,咱汇总了一些常用参数,如下:used_memory:已经使用的内存大⼩。used_memory_rss:redis物理内存的大⼩。mem_fragmentation_ratio:内存碎片率。内存碎片率这个名词需注意下,它用来表示当前内存使用情况..

2021-09-16 14:41:21 165 1

原创 聊一聊Redis的持久化~

作为内存数据库,Redis读写速度是无可挑剔的,但对内存来说,断电或遇到故障后数据就会丢失,基于此,Redis提供了两种持久化方案,如下:⼀、RDB持久化Redis持久化本质是以不同的策略将内存中的数据写到磁盘,大体过程简述如下:1、RDB持久化含义英文名称是Redis Data Base,也叫快照持久化。快照,在这是指某时刻的内存数据,而持久化则是将这⼀时刻的数据以⼆进制形式写⼊到磁盘⾥。2、⼿动触发机制(1)save命令在客户端操作命令就可

2021-09-16 14:37:36 183 1

原创 Redis究竟是单线程还是多线程?

​Redis是单线程的,在以前那就是真理,现在再说这句话,估计得有人来跟咱好好聊聊了。索性咱就来看看Redis到底是啥样呢?⼀、Reactor模式(反应器模式)1、传统阻塞IO模型聊反应器模式前,我们先看⼀下传统阻塞IO模型的处理⽅式。在传统阻塞IO模型中,由⼀个独⽴的Acceptor线程来监听客户端的连接,当有客户端请求过来时,它会为客户端分配⼀个新的线程来进行处理,当同时有多个请求过来,服务端对应的就会分配相应数量的线程,这样一来就会导致CPU频繁进行上下文切换操作,从而导致资源

2021-09-16 14:21:00 788 1

原创 缓存与库先写哪个?

生产环境中,为了避免⼤量请求同时冲击在数据库上导致宕机,数据库+缓存减少服务器压力的⽅式已经成了⽇常标配。对于读取的部分,⼤家都很熟悉,咱就不献丑了,但是对于写的部分,到底是先写库还是先写缓存,各路大神都有自己的看法,而本文仅代表个人观点哈。⼀、旁路缓存策略这个有逼格的名词咱们可能不是很熟悉,但是说到它的使⽤⽅式,咱们大多数人肯定有⽤过。这是⼀种最经典的缓存+数据库读写的模式,这种模式对应的使⽤⽅式有两种情况,⼀读⼀写,读就是基本读取方式,写就是先更新数据库后删除缓存。1、基本读取⽅

2021-09-16 14:18:31 250 1

原创 Redis为什么这么快?

⼀、基于内存实现​Redis是基于内存实现的,没有磁盘I/O的限制,这个应该没什么异议吧。⼆、⾼效的数据结构Redis中有多种数据类型,每种数据类型的底层都由⼀种或多种数据结构来⽀持:1、简单动态字符串(1)字符串⻓度处理上图是字符串在C语⾔中的存储⽅式,想要获取「Redis」的⻓度,需要从头开始遍历,直到遇到'\0'为⽌。Redis中⽤⼀个len字段记录当前字符串的⻓度。想要获取⻓度只需要获取len字段即可,前者遍历的时.

2021-09-15 11:43:32 95 1

原创 聊一聊代码整洁这回事儿

什么是好的代码?局部干净,核心逻辑简洁。写出整洁代码不仅需在函数、类级别上用功,也应该理解一些其他主题,如项目架构、设计原则等,软件工程是复杂(complex)的,只有各个方面都处理得干干净净,才能在整体上做到代码整洁。原则:消除重复,分离关注点,统一抽象层次消除重复重复的代码会让系统臃肿,难以维护,增加程序员的心智负担。消除重复的手段不外乎封装,抽取函数、类等。 代码重复,完完全全重复的代码,应该抽取出公共的函数。同一段代码出现两次及以上,就应该抽取出函数。 结构重复,代码

2021-09-14 20:49:53 204 1

原创 js实现php的aes加密解密

https://download.csdn.net/download/luyaran/22340845

2021-09-13 14:14:33 280

原创 【已解决】ajax请求提示【Provisional headers are shown】

线上后台突然有运营反馈某个功能不能用了,打开一看,如下:把【Provisional headers are shown】这一串儿粘贴出来找度娘一问,有很多答案,但都不适合自己,所以又详细看了下报错信息:到这里原因已经很清晰了,访问路径的问题。。。...

2021-09-13 14:04:34 506 1

原创 Go-访问苹果ASA广告API接口获取的数据与官方后台不一致【已解决】

本人出现这个问题的原因是因为时区问题,苹果官方默认是UTC【协调世界时,又称世界统一时间、世界标准时间、国际协调时间】,咱们后台看数据的时候选择的时区跟接口的可能不一致。修改咱们请求正文的下图字段就可以,可选值为UTC和ORTZ,根据需要使用。...

2021-09-07 17:41:53 567 3

原创 Go-string/int/int64/float之间类型转换方法

每次写类型转换脑子都有卡壳的时候,这次彻底记录下来,当成个小工具用。代码片段如下://string到int int,err:=strconv.Atoi(string) //string到int64 int64, err := strconv.ParseInt(string, 10, 64) //int到string string:=strconv.Itoa(int) //int64到string string:=strconv.FormatInt(int64,10)//st

2021-09-06 15:20:05 888 1

原创 Go-实现经典的猫狗队列

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:狗

2021-09-01 14:47:00 167 1

原创 Go-两个栈实现一个类似队列操作

栈的实现可以参考之前的博文。本文代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::

2021-09-01 14:43:54 75 1

原创 Go-移除切片中指定的某个元素

代码片段如下:func RemoveSlice(slice []int, elem int) []int { if len(slice) == 0 { return slice } for i, v := range slice { if v == elem { slice = append(slice[:i], slice[i+1:]...) return slice } } return slice}

2021-09-01 14:40:43 450

原创 Go-获取整形切片中的最大值&最小值

代码片段如下:func GetMinNum(ary []int) int { if len(ary) == 0 { return 0 } maxVal := ary[0] for i := 1; i < len(ary); i++ { if maxVal > ary[i] { maxVal = ary[i] } } return maxVal}func GetMaxNum(ary []int) int { if len(ary) == 0 {

2021-09-01 14:39:08 2982

原创 Go-实现双向队列【附加基础操作】

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:双

2021-09-01 14:33:03 244 1

原创 Go-仅用递归函数和栈操作,逆序一个栈

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:仅

2021-09-01 14:28:28 56 1

原创 Go-用一个栈实现另一个栈的排序

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:用

2021-09-01 14:24:42 78 1

原创 Go-求解汉诺塔游戏【递归函数&栈】两种方式

先来看递归函数的方式:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Uti

2021-08-31 10:17:17 348 1

原创 Go-实现双向链表附加基础操作

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:双

2021-08-31 09:53:59 79 1

原创 Go-实现双向循环链表附加基础操作

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:双

2021-08-31 09:43:13 90 1

原创 Go-实现简单二叉树数据结构

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:二

2021-08-31 09:39:53 97 1

原创 Go-实现简单的栈和队列&附加简单操作

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:s

2021-08-31 09:37:30 150 1

原创 Go-根据单链表结构获取两个有序链表的公共部分

单链表实现:https://blog.csdn.net/luyaran/article/details/119378365获取两个有序链表的公共部分代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .::

2021-08-28 17:01:08 62 1

原创 Go-根据单向循环链表解决约瑟夫问题

单向循环链表实现:https://blog.csdn.net/luyaran/article/details/119970185约瑟夫问题代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::

2021-08-28 16:57:38 77 1

原创 Go-实现单向循环链表

代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: * '::::::::::::::.. * ..::::::::::::. Utils:单

2021-08-28 16:55:09 214 1

原创 Go-根据单链表实现基础队列操作

单链表实现:https://blog.csdn.net/luyaran/article/details/119378365队列代码片段如下:/* * .::::. * .::::::::. * ::::::::::: * ..:::::::::::' * '::::::::::::' * .:::::::::: *

2021-08-28 16:51:48 74 2

原创 Go-json解密【数字精度问题】

获取请求中的json数据,片段如下:func GetGuiYinKeywordData(campaignId, orgId, timeStr string) GuiYinKeywordRule { reqest, reqestErr := http.NewRequest("POST", url, strings.NewReader(string(requestJson))) responseBody, responseErr := client.Do(reqest) if responseErr

2021-08-28 16:31:07 263 1

Redis面试知识点-一文概览全部内容

Redis面试知识点。。。全在这里了

2021-09-15

crypto-js.zip

aes加密js文件

2021-09-10

UML时序图绘制基础教程-0基础不要错过哟

时序图(Sequence Diagram),亦称为循序图、序列图、顺序图,是一种UML行为图。(翻译为时序图,实际上是不准确的,sequence这个单词并无“时间”的意思,只有序列,顺序等意思。)根据UML规范中对Sequence Diagram的描述: A sequence diagram describes an Interaction by focusing on 。。。

2020-09-30

PHP+node采集58微聊聊天信息

PHP+node采集58微聊聊天内容,仅仅是例子,不作为商业用途

2018-12-21

node执行百度搜索并且点击链接案例

包含目前为止最新的node环境,完事所附带的代码是访问百度首页,填入搜索词之后,点击搜索按钮,进行搜索,完事点击固定广告链接

2018-10-24

swoole聊天室核心代码案例

只有核心代码案例哦,不包括所有的案例哦,切勿搞错了,完事别再评论里骂我哦。 

2018-10-17

PHP抓取微信指数的小工具

该工具适合抓取微信指数的查询和抓取,安装步骤非常简单,有需要的童鞋可以私信和我联系,保证效率哦

2018-10-17

远程传递文件工具

可以远程传输文件的工具,特别适合不会使用ftp或者其他远程工具的各位小伙伴。

2018-10-17

各种浏览器的User-Agent信息包括手机端的浏览器

各种浏览器的User-Agent信息包括手机端的浏览器,需要使用模拟访问的各位,可以来试试,亲测可用哦。

2018-10-09

jQuery进度条比较灵活

简单的资源插件,比较灵活,希望可以帮助到大家。完事呢,这也是比较好用的

2018-06-29

个人使用PHP的各种字符串数组处理函数

详细记录了本人近段时间所使用的函数,当然啦,是自己封装的,有需要的可以共同学习下哈

2018-06-12

it技术图谱涵盖所有哦

it技术图谱涵盖所有哦,有需要的可以用来看看哦,先声明,不可以用来做一些其他文章的哦

2018-03-26

Git思维导图整理

本人搜集的各种Git集合,有学习方案还有具体功能介绍,均为图片,没有文档的哦

2018-03-26

curl 下载带进度条

封装的curl方式,可以用来下载,带有进度条的哦,很有点现实意义

2018-03-26

八种面试经验

面试经验

2016-12-31

PHP 超实用函数

PHP超实用函数

2016-12-14

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

TA关注的人

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