自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 进程与线程

进程(Process):当一个程序进入内存运行时,它就变成了一个进程。程序是静态的指令集合,而进程是系统中活动的指令集合。每个进程在系统中是独立存在的实体,它可以拥有自己独立的资源。线程(Thread):是进程的执行单元,当进程被初始化后,主线程就被创建了。它可以拥有自己的堆栈,程序计数器以及自己的局部变量。与父进程中的其他线程共享该进程所拥有的全部资源,所以在编程时要确保线程不会妨碍同一进程里的其他线程。相比进程的创建,线程的创建更加容易。...

2021-04-22 14:28:00 109

原创 盘点一下因为Mysql索引写的那些bug

关于索引,看起来简单可是不要被它的表象迷惑了呀~~~它的肚子里可不知道有多少弯弯道道呢,给你制造点小八哥的时候,你都要拍脑袋掐大腿,恍然大悟,“原来是它啊!!!”1.likelike不用介绍,大家都明明白白的,就是做模糊搜索的吗,谁不知道呢~产品经理说,我要模糊匹配,用户输一个字,只要带这个字的都给我展示出来,于是你就不管三七二十一,吭哧吭哧建个索引,不就是个like查询吗,so easy~~~select a from test where a like '%c%'2.这个就隐藏很深了,没

2021-04-16 15:52:07 167

原创 双指针算法何时加减令人头秃怎么办

用双指针去做循环的时候,什么时候该把指针加一,何时该减一,实在是令人头秃。今天分享一个简单的小技巧——枚举法。举个例子:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]思路:用两个指针i,j,i用来查找0,j用来查找非0,然后交换两个元素,大功告成。慢着慢着,你以为这就完事了么,nonono~~~上面交换步骤很简单,可是往往细节才是魔鬼,也容易被忽略,就是不进行交换的时候,

2021-04-06 11:57:18 142

原创 Mac Iterm 设置共享ssh会话

在ssh配置文件中设置ControlMaster模式,ssh输入密码键入一次连接后,Command+T再ssh建立新连接就不需输密码vim ~/.ssh/configHost * ControlPersist yes ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p

2021-03-05 11:02:25 559 1

原创 垃圾回收算法

垃圾回收算法GC标记-清除算法由标记阶段和清除阶段构成。标记阶段是把所有活动对象都做上标记的阶段。清除阶段是把那些没有标记的对象,也就是非活动对象回收的阶段在搜索对象并进行标记时使用的是深度优先搜索,因为深度优先搜索的内存使用量比广度优先搜索少优点实现简单与保守式GC算法兼容缺点碎片化分配速度慢,需要遍历空闲链表与写时复制技术不相容引用计数法用计数器表示对象被多少程序引用,当计数器的值为0时,对象变成了“垃圾”,这个对象的指针会全部被删除优点可即刻回收垃圾

2021-02-20 11:28:22 72

原创 ftp获取文件 shell

#!/bin/shhost="test.com"user="test"pwd="111"fileName=test_$(date +%Y%m%d).txtif [ ! -f "$fileName" ];then ftp -i -n $host<<EOF user $user $pwd binary cd /home/data/ lcd ./ get test.txt test.txt byeEOF if [ -f te

2020-10-13 10:33:37 922 1

原创 命令行执行php脚本报错could not open input file

当报错打不开文件或者找不到文件的时候,无非以下两种情况文件确实没有文件没有相对应的读写或者执行权限在检查了以上两种情况后发现并不属于以上两种情况,于是搜索网络,发现有说文件格式不对的,出错时文件格式是dos,可以在vi中用:set ff来查看,如果是dos格式,那么则用:set ff=unix来设置新的格式。于是查看文件格式,发现也不是这个问题。后来通过定位,找出问题所在,即在使用/php/bin/php test.php 这条命令的时候,要注意你执行这条命令的当前位置,相对于test.p

2020-10-12 11:39:40 5804 2

原创 MAC 安装pip报错

MAC 安装pip报错urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out解决办法:1.在~目录下新建文件夹.pip mkdir ~/.pip2.新建配置文件 pip.conf3.在pip.conf里配置国内源[global]index-url = http://pypi.douban.com/simpletruste

2020-09-22 14:46:20 660

原创 vscode 唤起终端窗口时报错可执行文件“/usr/local/bin/zsh“的路径不存在

control+` 唤起vscode的终端窗口时,弹出如下提示框解决方案:1.在iTerm里用which 命令查看zsh的位置2.打开vscode-----code-----首选项-----设置3.点击下图所示图标4.在打开的文件中添加第一步时候查到的路径5.完成...

2020-09-22 10:59:36 2573

原创 mysql设置not null后没有设置default值不报错问题

mysql表中某个字段设置了not null,但是没有设置默认值插入一条数据,但是不带这个字段,会报错,提示没有默认值以上,是正常情况下,在没有设置默认值,但是不允许为空的时候,再插入数据时没有插入这个字段,会报错。但是有一种情况不会报错sql model 常用来解决下面几类问题通过设置sql mode, 可以完成不同严格程度的数据校验,有效地保障数据准备性。通过设置sql model 为宽松模式,来保证大多数sql符合标准的sql语法,这样应用在不同数据库之间进行迁移时,则不需要对

2020-09-21 16:45:42 3629

原创 Mac ezip解压提示无法解压到文稿

mac电脑用ezip软件解压.zip文件提示无法解压到文稿用unzip命令解压 提示End-of-central-directory signature not found用命令jar xvf xxx.zip后发现缺少文件,重新压缩文件,再解压就没问题,其实是在压缩文件的时候还没有压缩完就会出现上述问题...

2020-09-21 16:08:34 328

原创 超实用程序员专用表情包-八阿哥

八阿哥的一生大家好啊,我叫八阿哥。在最开始,世界上是没有我的。可是,计算机被人类造出来了,于是世界便有了我。我呢,是被程序员小哥哥生产出来的,但是他们好像并不喜欢我,每次他们看到我都会愁容满面,抓头发叹气,气fufu的,干啥啥不得劲,吃啥啥不香。我的生命周期可长可短,具体要看程序员小哥哥抓我的娴熟度。有的时候吧,仅仅一个小小的字母写错了或者是多打了个空格,都会让他们找我好久好久。有时候他们也会借助一些工具找我,这样会让他们事半功倍。虽然吧,我最终都会被小哥哥们找到并解决掉的,这一刻我的一生

2020-06-01 11:30:08 2998

原创 php实现LRU缓存机制

<?phpclass LRUCache { /** * @param Integer $capacity */ public $capacity; public $LRUArr=[]; function __construct($capacity) { $this->capacity = $capacity; } /** * @param Integer...

2020-04-05 21:14:30 303

原创 php实现快速排序(Quick Sort)

从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。<?phpfunction quicksort($...

2020-04-05 15:45:06 182

原创 php实现十大排序算法之希尔排序(Shell Sort)

将数组中数据依次按照增量序列{n/2,(n/2)/2…1}分组将每次按照增量分组的数组插入排序重复直到增量为1<?phpfunction shellSort($arr) { $len = count($arr); for ($gap = floor($len/2);$gap > 0; $gap = floor($gap / 2)) { for...

2020-01-19 10:46:48 185

原创 十大排序算法之插入排序(Insertion Sort)

将数组中数据分两个区间,已排序区和未排序区取未排序去中的元素在已排序区间中找到合适的插入位置将其插入重复直到未排序区间中的元素为空,算法结束<?phpfunction insertionSort($arr){ $num = count($arr); if($num<=1){ return $num; } for($i=1;$i...

2020-01-18 16:40:55 111

原创 十大排序算法之选择排序(Selection Sort)

从未排序区间中找到最小元素,放入已排序区间末尾function selectionSort($arr){ $newArr = []; $len = count($arr); for($j = 0;$j < $len;$j++){ $smallest_index = findSmallest($arr); //取出最小的元素值并从数组中...

2020-01-17 11:38:41 112

原创 十大排序算法之归并排序(Merge Sort)

把长度为n的输入序列分成两个长度为n/2的子序列对这两个子序列分别采用归并排序将两个排序好的子序列合并成一个最终的排序序列php代码实现:function mergeSort($arr) { $len = count($arr); if($len < 2){ return $arr; } $middle = $len>>...

2020-01-16 10:09:16 826

原创 数据结构思维导图

根据近期所学习的各种算法与数据结构,总结出来一个关于数据结构的知识框架,包括每种数据结构的特点及重点以及应用,后续会以此导图为基础,对每种数据结构做单独的知识分享和扩展。...

2020-01-15 20:57:33 210

原创 十大排序算法之冒泡排序(Bubble Sort)

每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足就让它俩互换。function bubble_sort($arr){ $len = count($arr); if ($len < 2) { return $arr; } for ($i = 0; $i < $len; $i++) { //提前...

2020-01-15 14:58:31 140

原创 php 正则表达式

元字符元字符描述.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束-表示范围[]匹配括号中的任意一个字符[]只能匹配单个字符 例如匹配"cat",“hat”,可以写成[ch]at,要匹配"toat",“c...

2019-07-21 21:29:52 265

原创 设计模式之策略模式

策略模式 (Strategy Pattern) / 政策模式(Policy Pattern)定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使用的就是面向对象的继承和多态机制。三种角色Context 封装角色也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。php代码示例class Context{ /...

2019-07-15 18:21:56 94

原创 Memcache缓存设置时间

Memcache缓存设置的缓存时间最久是多少呢?有说30天的,有说永久的。查一下手冊通俗的话来讲就是说,如果设置为0,则永不过期,但是它可能会因为为了给其他项分配空间而被删除;如果用秒来设置过期时间,则最久设置的时间是30天,即使你设置了25920001秒,它只是给你保留259200秒;如果用时间戳设置的话,那就随意了,没有限制。Memcache源代码中计算过期时间,realtime...

2019-06-11 15:33:42 2706

原创 什么是CGI,FastCGI,PHP-FPM

CGI通用网管接口(Common Gateway Interface),可以让一个客户端从网页浏览器向服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。1.Common这个词很好的描述了CGI的特性---通用,它可以用任何脚本或者编程语言实现,例如Python,PHP,C/C++等,独立于任何语言。2.Gateway网关,又称网间连接器,协议转换器。它...

2019-06-10 23:09:14 158

原创 new static

今天研究了一下thinkphp orm的底层,想找找哪里去设定要操作的数据表,结果发现里面有一个new static的东西。它还有个兄弟,new self,那么它们究竟是干什么用的呢,举个

2019-06-04 18:43:47 417

原创 rpc基本原理

1.基本概念Remote Procedure Call,即远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。2.RPC的实现流程1.客户端调用client stub,client stub收到调用后 将方法,参数等转换为标...

2019-06-04 18:42:06 609

原创 本地部署 cas server (win10)

本地部署 cas server (win10)JDK安装,java环境配置1.官网下载 JDK安装包 http://www.oracle.com/technetwork/java/javase/downloads/2.按提示安装,记下安装路径3.配置环境变量 JAVA_HOME C:\Program Files (x86)\Java\jdk1.8.0_191 JDK安装路径 ...

2019-05-15 15:36:58 1289 1

空空如也

空空如也

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

TA关注的人

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