自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编译语言的执行方式总结和分类

编程语言在编程中,有很多语言,如C,Java, PHP,Python, Shell, Perl等。但是这些语言都有什么特点,以及其执行的原理是什么呢?什么是程序指令+数据语言执行机制介绍分类编程语言主要分为编译型和解释型,以及编译解释型, 还有即支持可以编译,也支持可以解释。一. 编译型:例如C/C++,是传统的编译型语言。将代码以及可静态化的数据直接编译为二进制指令码,机器CPU加载就直接执行。就像吃东西拿到就直接吃了,不需要考虑太多。优点:执行速度快缺点:调试复杂,需要不断编

2020-05-17 15:02:24 1082

原创 php闭包函数解释

什么是闭包?闭包和匿名函数其实不同的。匿名函数只是没有名字的函数,可能场景是用于便于调用。而闭包函数是引用外部的变量,导致延长了外部变量的生命周期的一个匿名函数。PHP中的闭包函数主要通过bind和bindTo函数PHP中闭包不支持构造函数bind(closure, [newthis], [newscope])closure_function::bindTo(newthis, [newscope])函数解释bind函数第一个参数, 这个是闭包函数第二个参数, 将这个闭包

2020-05-15 00:52:12 185

原创 PHP中的自动加载

为什么需要自动加载?在PHP5之前, 如果需要引入外部的文件,那么需要通过include和require命令。如果只是小项目,那么倒也没什么问题,但是当我们做大型项目的时候,大量的include/require则会有很多缺点:可能造成引入混乱代码必须和文件路径做硬链接,耦合文件中的类可能还未使用到,但是include/require就已经加载进来了解决方案在php5之后,zend提供了__autoload函数function __autoload($classname){ var

2020-05-13 23:28:28 165

原创 http报文结构

请求报文和响应报文请求行请求行是这样的:请求方式 请求URL HTTP版本号总的来说就是:URL代表服务器资源的路径, 而请求方式表示你对这个资源进行什么操作;而HTTP版本表示客户端目前要和服务器通信的HTTP版本。–请求方式注: 是否包含主体表示客户端请求服务器的方式是否包含body内容。POST和PUT包含主题内容状态行状态行也可以称为响应行–响应码其中30...

2019-12-03 21:08:46 237

原创 什么是Http长连接?

http连接分类短连接: 就是每次请求都需要建立三次握手,然后传输数据,再然后四次挥手断开连接。一般适用于web请求长连接(也被称为持久连接 persistent connection)。不同于短连接, 长连接建立三次握手之后, 之后的请求不再重新建立三次请求, 而是继续传输数据, 最后才断开连接http版本支持http1.0默认都是短连接http/1.1默认是长连接http头...

2019-12-03 12:37:23 365

原创 C语言基础数据类型不同类型的计算转换

何为转换如1+1.0, 这是一个int + double类型,则编译器自动将数据转换为double + double。这就是类型转换规则

2019-11-29 23:45:22 168

原创 婚礼的谎言

实现#include <stdio.h>/** 设x,y,z分别为1,2,3 设a=1表示a与x结婚 b=2表示b与y结婚 c=3表示c与z结婚**/int main(int argc, char const *argv[]){ int a, b, c; //三个丈夫 for (a=1; a <= 3; a++) { for (b =1; b &l...

2019-11-29 14:18:15 170

原创 如何理解数据流

什么是数据流可以将流看成一根管道,而将设备或文件看着一个桶。当我们需要从设备或者文件中读取数据的时候,我们需要一根读取的管道,即读取流; 同理,如果我们需要将数据写入文件或者设备,那么我们需要一根写入的管道,即写入流。如何创建流当打开一个文件的时候,我们就自动创建了流(管道),如果我们fread, 那么就是一个读取流;如果是fwrite, 那么就是写入流标准流系统自带了三个标准流,s...

2019-11-28 16:05:55 829

原创 二叉树叶子节点数

原理如果没有左孩子,也没有右孩子, 那么就是叶子节点实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { int data; struct BitNode *lchild, *rchild;} BitNode, *BitTree;void CreateTree(BitTree *...

2019-11-28 13:24:11 198

原创 二叉树第K层节点数

原理以根节点为起点的第K层,即为根节点子节点的第K-1 层,为根节点子节点的第K-1-1层,所以如果最后为1则说明当前为第K层的节点实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { int data; struct BitNode *lchild, *rchild;} BitNo...

2019-11-28 13:10:03 2054

原创 二叉树的层数

原理通过递归分别计算节点的左右最大层数, 加上根节点就是二叉树的总层树实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;int sum = 0;in...

2019-11-27 23:59:40 3900

原创 求二叉树中的节点个数

原理维护一个数量的变脸值,通过遍历二叉树, 对这个变量进行累加。代码#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;int sum = 0;void ...

2019-11-27 23:46:58 186

原创 二叉树的遍历

二叉树遍历前序遍历中序遍历后续遍历代码实现#include <stdio.h>#include <stdlib.h>typedef struct BitNode { char data; struct BitNode *lchild, *rchild;} BitNode, *BiTree;// void createBiTree(BiT...

2019-11-27 23:39:19 117

原创 求一个数列中第K大的数

想法如果求K大的数, 我们可以通过维护一个数量为K的的小顶堆,通过不断维护这个小顶堆来计算出数列中前K个数,而小顶堆中,堆顶为最小的数,即为第K大的数代码实现c语言实现;求数列中第3大的数字#include <stdio.h>int h[101]; //存储对列数据int n; //存储队列大小int k = 3; //k大小int k_num[4];void...

2019-11-27 00:41:40 325

原创 优先队列

什么是优先队列支持插入和寻找最大(最小)值的数据结构称为优先队列为什么使用堆来实现什么是堆:一颗完全二叉树了解概念(二叉树,完全二叉树, 满二叉树)因为使用队列来实现, 那么插入一个数据, 复杂度是O(n), 找到最大(最小值)的复杂度也为O(n); 而使用堆, 则插入一个数据的复杂度为logN, 找到一个最值的复杂度也为logN; 所以堆排序的复杂度是N*logN, 是一种比较好的排序...

2019-11-26 23:36:27 82

原创 C语言指针为什么有类型

在C语言中,我们发现C语言的指针是需要声明类型的,为什么呢?指针不就是存储数据的地址值,不都是一样的大小吗?的确如此答案是:因为指针变量存储的是一个内存空间的首地址(第一个字节的地址),但是这个空间占用了多少字节,用来存储什么样类型的数,则是由指针的类型来标明的。这样系统才知道应该取多少个连续内存作为一个数据。...

2019-11-21 12:20:37 994

原创 js中函数的属性和方法

在js中,函数也是对象,所以也有属性和方法属性caller 指向被调用的函数function outer() { innert()}function inner(){ alert(inner.caller); }outer(); //outer, 因为是outer调用了inner//解决依赖function innert() { alert(arguments....

2019-11-11 22:49:05 251

原创 PHP的trait是干什么的?

由于PHP原声不支持多继承, 所以PHP使用trait来支持多继承功能

2019-11-05 22:44:26 106

原创 Laravel-Arr类

作用Illuminate\Support\Arr是一个数组帮助类,便于使用。函数解析<?phpnamespace Illuminate\Support;use ArrayAccess;use Illuminate\Support\Traits\Macroable;use InvalidArgumentException;class Arr{ use Macro...

2019-11-05 22:34:52 2893

原创 排序算法--PHP实现版本

排序算法交换排序–冒泡实现原理:按顺序将元素进行比较,让较大的数字上浮(从小到大排序)交换排序-快速实现原理:取一个元素为基准,将比这个数大移到右边,比这个数小的移动到左边。利用递归插入排序-插入排序实现原理:取一个数字与已经排序好的队列进行比较, 直到找到适合插入的位置。类似于摸扑克牌插入排序-希尔排序实现原理:对元素进行取一个gap(一般初始值是元素队列长度的一半),然后将这...

2019-11-04 23:36:02 125

原创 apache-options配置之Indexes

配置Options Indexes FollowSymLinksIndexs的配置的作用是如果不存在Index.html文件的时候, 将该目录下的文件树列出来一般在线上使用

2019-11-02 21:18:33 470

原创 apache2.4.39-如何使用主机模式

apache运行的两种方式1.主机模式2.虚拟主机方法遇到问题之前以为开启主机模式的方式主要在httpd.conf中配置DocumentRoot就可以,而如果需要使用虚拟主机的方式只需要注释掉DocumentRoot就行了但是在apache 2.4.39中,开启了DocumentRoot配置,但是同时也启用了/usr/local/etc/httpd/extra/httpd-vhosts....

2019-11-02 21:13:48 298

原创 英文解释-01

摘自httpd服务器的的httpd.conf# This is the main Apache HTTP server configuration file. It contains the# configuration directives that give the server its instructions.# See <URL:http://httpd.apache.or...

2019-11-01 23:42:02 75

原创 设计模式-备忘录模式

参考:https://blog.csdn.net/lovelion/article/details/7526759定义备忘录模式(Memento Pattern): 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个对象,这样可以在以后将这个对象恢复到原先的状态。是一个对象行为型设计模式。别名为TokenUML伪代码/** * 原发器 */class Orig...

2019-10-30 23:18:44 74

原创 Mysql修改密码的三种方式

mysqladmin -u ‘username’ -h ‘hostname’ password ‘new_password’ -peg: mysqladmin -ujerry -hlocalhost password ‘123456’ -p将jerry的密码修改为123456, 这种方法需要输入旧密码set password for ‘username’@‘hostname’=pa...

2019-10-30 12:18:01 159

原创 设计模式--外观模式(Facade)

定义为子系统的一组接口提供一致性的界面。此模式定义了一个高层接口。这个接口使得子系统更加容易使用。UML伪代码/*** Facade*/use SubSystem\Stock1;use SubSystem\NationDebt1;class Fund{ private $stock1 = null; private $nationDebt1 = null;...

2019-10-20 11:01:23 71

原创 设计模式--原型模式

定义用原形实例创建对象的种类,并通过拷贝这些原形创建新的对象。UML伪代码/** * Prototype interface */interface Prototype{ public function clone();}/** * Concrete Protype * 这里考虑深复制 */class ConcreateProtype implements P...

2019-10-16 00:13:21 56

原创 设计模式--装饰模式

模式定义动态的给一个对象添加一些额外的职责。就增加对象功能来说,装饰模式比生成子类更加灵活。装饰模式是一种对象行为型模式。UML伪代码/** * Base Component */abstract class BaseComponent{ abstract function display();}/** * Concret Component */class W...

2019-10-15 15:28:55 102

原创 bash配置环境变量和配置命令别名

查看命令类型例如:外部命令:type ls //ls is /bin/ls内置命令type cd //cd is a shell builtin外部命令的pathvim ~/.bash_profile添加自定义的path环境:export PATH="/usr/local/opt/php@7.1/bin:$PATH"定义别名:alias ll='ls -alh'...

2019-10-15 10:32:45 231

原创 设计模式--策略模式

定义定义一个算法家族, 分别封装起来。此算法可以让算法独立变化,不影响使用算法的客户端。是一种对象行为型模式。UML伪代码/** * Strategy Context */use Util\ArrayTookit;class CashContext{ private $cs = null; public function __construct($type, $opt...

2019-10-14 21:32:58 82

原创 设计模式--简单工厂

定义定义一个工厂类,可以根据参数不同返回不同的实例。这些实例继承同一个父类。由于工厂类中创建实例的方法是静态方法, 所以工厂方法也被称为静态工厂方法, 是类创建型模式。不属于GOF23中设计模式。UML类图伪代码/** * 工厂类 */ class OperateFactory{ public static function getOperateInstance($type)...

2019-10-14 14:21:18 58

原创 UML关系图个人总结

继承实现关联当一个类需要“知道”另外一个类的时候,可以用关联关系。伪代码:class Tempaerture{}class Snake{ private Tempaerture $tempaerture;}聚合聚合是一种弱的“拥有关系”, 如雁群和大雁,大雁是雁群的一部分,但是大雁同时也可以脱离雁群伪代码class Yanqun{ protected ...

2019-10-13 11:14:09 123

原创 PHP中spl_autoload系列函数的使用

作用: 实现自定义PHP函数自动加载的系统函数; 可以定义多个类autoload函数,PHP内部维护一个队列;PHP中Compoer库也是应用了相关函数实现自动加载类。相关函数介绍: /** * 默认的__autoload实现, 不需要实现这个函数,如果没有实现spl_autoload_register,则从get_include_path实现自动加载 def...

2019-10-12 18:46:35 217

原创 Thinkphp5.1的config文件无法拿到composer的file方式的类问题

1.在使用tp5.1中, 遇到config文件中无法找到composer的file方式的类 问题解释:在tp5.1启动过程中, App::run =&gt; App::initializeApp::initialize:        // 初始化应用        $this-&gt;init();        .....        Loader::loadCo...

2018-12-03 14:55:38 253

原创 nginx配置CORS解决跨域实例解析

1. 什么是CORS   CORS: cross-origin resource sharing, 跨源资源共享, (请求协议+域名+端口)一样为同源2.简单请求跨域什么是简单请求和非简单请求参考:http://www.ruanyifeng.com/blog/2016/04/cors.html非常简单:nginx配置:    # PHP 支持    location ~ ...

2018-12-03 14:36:31 476

翻译 c语言的int const * a与int * const a

int const * a:    a是指针一个常量的指针, 可以修改指针的指向,但是不能改变指针指向的值int * const a:    a是一个指向值的常量指针; 此时可以修改指针指向的值, 但是不能修改指针的指向 如何理解:一:将内存想象成一个个房间的街道,int const * a:  a指针作为门牌原本指向一个不能改变的的房间(如信息仓库);此时允许a指向咖啡厅, ...

2018-10-21 22:49:36 3200

翻译 (一)排序算法之冒泡排序

原理【1, 33, 5, 2, 8, 6, 7, 10】 从小到大排序, 每一轮将最小的数字放在最后, 直至所有的数字排序好c语言版本:#include&lt;stdio.h&gt;void bubble_sort(int * originArr, int count){ int i, j; int temp; for(i = 0; i &lt; c...

2018-09-16 22:21:54 199

翻译 简单工厂模式

目录目录名称模式定义模式的背景(缺点)核心代码和类图四个角色UML图核心代码优缺点及适用场景参考名称简单工厂模式定义定义一个工厂类, 它可以根据参数的不同返回不同的实例,被创建的实例通常具有相同的父类。因为简单工厂模式中创建实例的方法属于静态方法(static), 所以简单工厂模式又叫静态工厂方法(static Factory...

2018-09-16 21:33:05 126

空空如也

空空如也

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

TA关注的人

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