自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 Golang Slice源码解析

切片和数组的区别点就是切片是引用类型可以动态扩容,数组是值类型不可扩容。由切片的结构可知切片底层实现是在在数组之上包装了一层,由一个指向数组的指针,以及容量和长度,这个指针对应是否变化切片的使用常规是不关心的。

2024-05-17 11:28:17 168 1

原创 Golang heap堆源码解析

Golang 的堆是用二叉树来实现,heap包实现了保证根节点为最大/最小值即大根堆/小根堆,而后续其他的节点顺序不能保证,要想严格排序,需要自行实现额外逻辑。

2024-04-16 14:09:46 333

原创 vim 实用快捷键

vim 快捷键,翻页,跳转,编辑,多行操作

2024-02-20 19:22:03 602

原创 vim 寄存器

vim 寄存器的详细介绍及vim 寄存器不同模式的使用方式。COMMAND MODE(命令模式):+"寄存器名称 (输入后VIM会自动打出"寄存器引用符号。INSERT MODE(插入模式):+寄存器名称(无需输入寄存器引用符号")NORMAL Mode(一般模式):"{register_name}查看指定寄存器值::reg {register_name}查看所有寄存器值::reg。

2024-02-20 17:45:29 781

原创 rust 基本数据类型

Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型,基本类型如下。

2023-11-29 17:31:31 325

原创 rust和golang的对比

* Golang 的特色是简单,原生支持并发,编译速度和执行速度有所均衡* Rust 特色专注内存的安全语言,追求极致的执行速度,编译较慢* 都是编译型语言* 都是强类型语言* 性能都比较出色

2023-11-29 16:32:18 937

原创 Golang 中的静态类型和动态类型

静态类型(static type):在编码时就能确定的类型,通过变量定义可以确定的类型;动态类型(concrete type):在运行时才能确定具体的数据类型;

2023-09-05 17:46:23 672

原创 Golang 中return和defer执行先后顺序

Golang语言中函数的return不是原子操作,而是分为了两步:返回值赋值;真正函数返回

2023-09-04 21:01:34 861

原创 golang slice 作为参数值传递情况说明

golang 中引用类型有:slice、map、interface、channelgolang所有类型在函数中都是值传递,这个跟上面golang中有的数据类型为引用类型并不冲突,用下面四个slice实例帮助理解

2023-07-28 20:13:39 481

原创 Golang类型定义与类型别名区别

类型别名是go 1.9以后引入的新功能,主要是为了解决代码升级迁移中的兼容问题类型别名只存在与代码中,编译后别名是不存在的, 见实例1代码类型别名不可随意扩充方法,类型定义可以在新的类型上扩充自定义方法,见实例2

2023-04-15 13:56:08 171

原创 Golang recover无法捕获踩坑

panic后,程序不会往下继续执行,也不会立即结束而是会调用当前goroutine 的延迟调用函数。就必须加在当前goroutine 的 延迟调用函数中。

2023-03-28 20:35:17 431

原创 golang字符串拼接性能测试

golang 字符串拼接性能测试

2021-12-22 17:21:43 448

原创 Golang 小知识点集合 -下划线用法

下划线(_) 用法忽略返回值该用方法很常见,不在多说,放一个例子:v, _ := functionName(...)初始化包,但是不使用该用法也很常见,就是导入包进行初始化,不使用其他能力import _ "test/test"接口断言该用法是本次重点介绍学习的,该用法主要是在给变量校验是否实现接口,具体看下面例子:type Book interface { GetName() string}type Maths struct {}func(m Maths)

2021-06-16 17:54:57 255

原创 Golang 小知识点集合 -值类型和引用类型

前言:堆栈存储简介栈(stack) : 一种拥有特殊规则的线性表数据结构,只允许线性表的一端放入数据,之后再这一端取出数据,按照后进先出(lifo)的顺序。堆(heap) : 一段非连续的存储空间,堆分配内存和技分配内存相比,堆适合不可预知大小的内存分配 ,但是为此付出的代价是分配速度较慢 ,而且会形成 内 存碎片。定义简介首先不管是值类型还是引用类型的数据都在存储中存在的,值类型和引用类型二者区别主要体现在变量(容器)及变量的赋值。值类型数据:变量直接存储值,赋值重新开辟新空间复制一份数

2021-06-16 17:53:18 250

原创 mysql 查询 以逗号分割的数字组成的字符串 中的最小值

mysql 查询 以逗号分割的数字组成的字符串 中的最小值背景介绍实际需求场景解决该问题的过程使用到的函数背景介绍电子版的书,以一张张的图片存储到库里,然后每篇文章标注了是从包含了那些页,然后要找到每片文章的第一页图片作为该篇文章的封面。此次要重点说明一下,文章包含那些页是用一个字段 以逗号分割的形式存储为了字符串具体表结构如下:CREATE TABLE `book_page` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `book

2021-02-20 19:02:24 822

原创 Mysql分组汇总查询之group_concat

group_concat 作用: 分组之后,把相同group的值汇总展示,具体看下面实例具体用法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )简单实例:select time,group_concat(id) from table group by time; 结果如下:timegroup_concat(id)2020-01-011, 2, 42020-01-

2020-09-11 20:01:25 389

原创 重温记录PHP中namespace、use以及require、include区别与联系

简述其根本作用require/include: 引入文件,二者区别就是文件找不到时,require会报errore而include不会,但是require相对速度更快namespace: 是解决多文件引用后导致的同名冲突问题use: 简单说就是起别名,引入namespace 后导致一个类完整的名称可能会特别长下面举例说明require、namespace、use三者的配合使用:项目目录结构:|-- spaceTestB |--TestBChild |-- TestC.php |--

2020-07-01 15:35:10 987

原创 重温PHP自动加载机制

PHP自动加载机制自动加载的两种方式1. ```__autoload```魔术方法2. ```spl_autoload_register```方法```spl_autoload_register```的使用方式自动加载的两种方式1. __autoload魔术方法该方法使用PHP5和PHP7,并且在PHP7.2以后的版本已经被移除,因为该方法有一个致命缺陷,该方法不能重复定义,也就是说我们只能定义一种加载文件的模式,当我们应用其他插件扩展的时候就有问题。示例如下:项目目录结构:|-- aut

2020-06-29 18:05:36 7046 1

原创 mysql 查询包含大写的数据

1. 问题背景为了兼容老数据,需要根据一个字段的全大写还是全小写来区分为不同类别2. 实现原理采用mysql 正则表达式(REGEXP)来时实现,另外为了防止数据库没有设置区分大小所以也需要加上BINARY关键字例如: SELECT count(1) FROM `table` `t` where t.title REGEXP BINARY '[A-Z]';...

2019-08-26 17:59:18 1905 1

原创 限流算法之漏桶和令牌桶

1.漏桶漏桶主要目的是控制数据注入网络的速率,平滑网络上的突发流量。漏桶可以看做是一个带有常量服务时间的单服务队列,如果漏桶溢出,那么数据包会被丢弃。<?phpclass SmoothWarmingUp { private $timeStamp; public $capacity; //桶的总容量(为了测试单位改为每5秒容量) public $rate; //流出速率(单...

2019-08-19 19:48:22 264 1

原创 PHP 特殊基础点

1. float类型不能直接进行比较,因为有机器误差的存在。 以十进制能够精确表示的有理数如 0.1 或 0.7,无论有多少尾数都不能被内部所使用的二进制精确表示,因此不能在不丢失一点点精度的情况下转换为二进制的格式。例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999999991118...。2....

2019-06-28 16:39:00 250

转载 sql 注入

什么是SQL注入?简单的例子, 对于一个购物网站,可以允许搜索,price小于某值的商品这个值用户是可以输入的,比如,100但是对于用户,如果输入,100' OR '1'='1结果最终产生的sql, SELECT *FROM ProductsTblWHERE Price 这样用户可以获取所有的商品信息再看个例子,对于用户身份认证,需要输入用户名和密码但是

2018-05-03 16:21:47 987

原创 js 判断为false情况

1. 空串('')和null if('' == null)  //false if('' == undefined)  //false  if(null == undefined)  //true if(null === undefined)  //falseGMT检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼...

2018-05-03 16:20:47 725

原创 Linux查看程序端口占用情况

今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程。 使用命令:netstat –apn 查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name发现8080端口被PID为9658的Java进程占用。进一步使用命令:ps -aux | g...

2018-05-03 16:19:42 171 1

原创 php数组经过json_encode转换 js中无法识别改json格式

首先说明一个点,js中json格式是以大括号'{}',开始结尾的一个字符转。但是php中以数字作为索引的数组,经过json_encode转换,是一个以中括号‘[]’,开始结尾的一个字符串,因此,在js中就无法使用JSON.parse来转换数据。为解决这个问题,想了好多办法,感觉怎么做都不太方便,最后终于发现一种比较简单的方式。php中以字符串作为索引的数组,经过json_encode转换,是以大括...

2018-05-03 16:18:36 1065 1

转载 常用正则表达式

常用正则表达式大全!(例如:匹配中文、匹配html)       匹配中文字符的正则表达式: [u4e00-u9fa5]          匹配双字节字符(包括汉字在内):[^x00-xff]   评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)          匹配空行的正则表达式:\n[\s| ]*\r  评注:可以用来删除空白行   匹配HTML标记的正则表达式...

2018-05-03 16:17:21 202

转载 网页调用外部搜索引擎(百度,Google)

调用外部的搜索引擎,百度和谷歌:&lt;span style="font-size:18px;"&gt;&lt;form method="get" action="http://www.google.com/search" target="_blank"&gt; &lt;input name="q" size="40" maxlength=

2018-05-03 16:15:43 5535 1

原创 python 特殊的基础知识

1. 首行——组织行    源文件的头两个字符为#!,后面跟一个程序。源文件默认执行的时候会采用该程序执行该源文件。2.字符串    三引号:多行字符串,可以随意使用单引号或者双引号。    自然字符串:不需要如转义符那样的特别处理的字符串。定义方法为在字符串前加前缀r或者R,例如:r"This's my book."     unicode字符串:定义方法在字符串前加前缀u或者U    按字面意...

2018-05-03 16:09:56 180

原创 php 0 == ‘all’ 为true 解析

PHP手册中 var_dump(0 == 'all')        //true产生这个结果的原因是因为string 'all’自动转换为了int 类型的0。注意:    该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后...

2018-05-03 16:07:00 1698

原创 js数组 不支持字符串索引

今天遇到了一个奇怪的问题js中通过console.log可以打印出值,但是传到后端就是不能正常获取值做测试发现是由于数组的字符串索引引起,最后解决办法是把数组定义改为对象var data = []; 改为 var data = {}...

2018-04-13 18:25:15 1018

原创 html select 不可编辑时表单提交问题

select 选择框在编辑的时候要改为不可选,查看文档发现有disabled属性,加上发现确实不可选了但是紧接着测试发现form表单提交的时候select 内容并没有被提交,都是disabled惹的祸啊对此有两种解决办法一. js中获取每一个值然后手动提交表单二. 因为是直接利用form.submit进行的提交,所以只能在进行提交前吧disabled去掉两种方法都不是很优雅,但是如果能用第一种方法...

2018-03-27 15:59:57 1770

原创 php 根据一个数组对另外一个数组进行排序问题

现在需要根据keyArr数组给valueArr数组进行排序:$keyArr = [100,200,300];$valueArr = [        '200' =&gt; 'ni',        '100' =&gt; 'hao',        '300' =&gt; 'aaa'];从网上查到的一个方法是利用array_merge函数相同key后者会覆盖前者特性,进行如下测试:var_dum...

2018-03-27 15:49:53 3587

转载 git pull 错误

错误提示:! [new branch] dev -> origin/dev (unable to update local ref)error: some local refs could not be updated; try running‘git remote prune origin’ to remove any old, conflicting branches 解决

2017-08-30 10:25:25 6645 1

转载 非 root 用户安装和配置 NodeJS

本文主要针对 Linux 非 root 用户,在没有 root 权限下如果安装及配置 NodeJS(注:这里安装的是官网上已经编译好的二进制包)。首先到 NodeJS 的官网(https://nodejs.org/en/download/)下载对应的已经编译好的二进制包。这里以 CentOS 6 32bit 为例,安装 NodeJS 的 LTS 版本: 1.下载 Linux Binar

2017-08-02 11:32:37 3878 1

转载 Linux 查看端口占用情况

1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80

2017-08-01 19:05:45 413

转载 Linux查看系统信息的一些命令及查看已安装软件包的命令

系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

2017-07-31 11:27:39 495

原创 JQuery的父、子、兄弟节点查找方法

JQuery的父、子、兄弟节点查找方法jQuery.parents(expr)          //找到所有祖先元素,不限于父元素jQuery.children(expr)        //查找所有子元素,只会找到直接的孩子节点,不会返回所有子孙jQuery.contents()            //查找下面的所有内容,包括节点和文本。jQuery.prev()     

2017-07-28 16:18:22 363

转载 Jquery 获取radio选用值

随着Jquery的作用越来越大,使用的朋友也越来越多。在Web中,由于CheckBox、Radiobutton 、DropDownList等控件使用的频率比较高,就关系到这些控件在Jquery中的操作问题。由于Jquery的版本更新很快,代码的写法也改变了许多,以下Jquery代码适query1.4版本以上。Radio      

2017-07-17 22:55:52 332

原创 php 按照回车拆分字符串注意事项

php 拆分函数为explode回车符的用“\n”表示,故匹配换行直接上就是explode("\n", $str);此处需要注意的是:必须使用双引号,使用单引号会不解析字符串内容,导致无法正确匹配

2017-06-27 15:40:19 4454

原创 php empty函数

* 格式:bool empty ( mixed var )    * 功能:检查一个变量是否为空    * 返回值:         若变量不存在则返回 TRUE         若变量存在且其值为""、0、"0"、NULL、、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 TURE         若变量存在且值不为""、0、"0

2017-03-27 18:10:32 344

锋利的jQuery

2016-08-05

Linux基本命令

最全的Linux命令,刚开始学Linux的时候用来做手册是不错的

2016-01-23

c#帮助文档

c#的帮助文档,可以做入门c#用,也可以把它作为一个手册来使用

2016-01-23

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

TA关注的人

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