自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 php面试指导

php面试1对1指导,请加微信:prince_lzc,备注请写csdn面试指导

2018-08-03 11:21:34 198

原创 php7之变量

变量都保存在zval结构体中。 1. zval结构变化 变成了zend_value和两个union,其中一个记录类型相关,另一个记录扩展信息。 结构体中占用空间变小,8+4+4=16共16字节,相比原来48字节,减少2/3空间,效率提升起到关键作用。 2. zend_value变化,zend_value记录变量值,整形和双精度数据不使用指针减少数据存取操作。其它数据类型使用

2018-01-28 14:52:57 641

原创 php7之hashtable

作为php的重要数据结构,本博记录一下hashtable的结构,存储,hash定位等问题。hashtable结构,是有56个字节组成等struct,如下:struct _zend_array { zend_refcounted_h gc; union { struct { ZEND_ENDIAN_LOHI_4(

2018-01-28 13:11:28 435

原创 hash table及hash冲突

hash table定义根据key通过hash算法得到地址(value)的一种数据结构。hash函数把任意长度的输入通过hash函数得到固定长度的输出 好的hash算法分布要均匀,如time33,应用广泛,php采用此hash算法 hash = hash*33 + str[i];hash冲突不同的key经过计算出hash值相同,产生hash冲突。 1. 开放定址法

2018-01-28 11:12:02 652

转载 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解

网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解借鉴了:http://hi.baidu.com/whitelocus/blog/item/d091ded88ac669e038012f5a.html1. 文中符号的说明:        : 可以理解成A,也可以理解成B。2. 术语        调制解调器(Modem): 实现模拟信号

2018-01-11 21:06:18 476

转载 基于redis的分布式锁实现

关于分布式锁很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可

2018-01-11 15:29:58 9198 1

转载 http协议

http协议是包括起始行,通用头域,请求头域、响应头域、消息体;详见http://blog.csdn.net/wduxin/article/details/53744574

2018-01-04 20:51:48 153

原创 php生成器

生成器提供了一种更容易的方法来实现对象迭代,相比定义类实现Iterator接口的方式,性能开销和复杂性大大降低。生成器允许你在foreach代码块来迭代一组数据而不需要在内存中创建一个数组,那会使你内存达到上限,比如一个非常庞大的数据,或者占有很多的处理时间。如果用一个生成器函数,和普通的自定义函数很像,只不过普通函数返回一次,而生成器函数可以根据需要yeild多次,以便生成需要迭代的值。

2018-01-03 20:28:25 155

原创 计算机网络传输原理_通俗版

关于计算机网络传输原理网上有很多很专业的讲解,博主就不班门弄斧了,在这只用通俗易懂的语言,描述一下网络传输的原理,明白大概之后,再去看专业的剖析,可能更好理解一些,现在假设我用我的电脑访问和你进行通信,只知道你的域名。那么整个流程是怎么样的呢?首先呢,需要先去查询dns服务器,拿到你的ip,然后根据arp协议找到默认网关的mac地址,把mac地址发给交换机,交换机就根据这个mac地址发给了网关

2018-01-03 20:10:55 4852

原创 斐波拉契数列-青蛙跳台

斐波拉契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34…定义f(0)=1,f(1)=1,f(n)=f(n-1)+f(n-2)青蛙跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?跳一阶有一种跳法,f(1)=1,跳二阶的时候有两种跳法,f(2)=2,跳三阶的时候可以这么考虑,先跳一阶,然后再两阶f(2)

2017-03-22 08:50:27 1760

原创 栈的定义及应用场景

栈是仅限定从尾部进行插入和删除操作的线性表结构。具有先进后出,后进先出的特性。栈的应用实例1、数制转化2、括号匹配校验3、迷宫求解4、实现递归-汉诺塔/** * n表示圈编号,此函数表示将编号n及以上的圈从a,借助于b,移至c */function hannuota($n,$a,$b,$c){ if($n==1){ mov($a,1,$

2017-03-21 22:41:09 2491

原创 php7新特性及升级

1、变量处理机制修改           a、间接变量、属性和方法引用都是从左到右顺序解释;           b、global关键字只能引用简单变量;           c、用括号把函数扩起来还是会报错;           d、引用赋值时自动创建的数组元素或对象属性顺序和以前不同      2、list变化           a、list不再按相反顺序赋值; 

2017-03-21 21:57:57 429

原创 设计模式-观察者模式

观察者模式,可以简单理解为很多观察者去观察被观察者,当被观察者发生变化时,通知所有观察者,也可称之为订阅模式。定义被观察者和观察者接口/** * 被观察者接口 */interface observered{ //注册观察者 public function registerObj($observer); //删除观察者 public function

2017-03-21 21:30:51 198

原创 https为什么安全之数据加密

为了保证在通信中数据的安全性,防止数据被窃取或篡改,对传输数据需要进行对称加密,但是客户端和服务端在协商加密算法时,同样是不安全的,因此对协商过程再采用非对称加密,采用非对称加密后客户端在获取公钥的过程中还是有可能被攻击,于是又引入了第三方机构,通过第三方的私钥对服务端公钥进行加密,也就是所谓的数字证书客户端通过第三方的公钥对服务端的公钥进行解密,拿到服务端真正的公钥,为了解决机构

2017-03-21 09:49:02 368

原创 php内存管理之垃圾回收机制

每个php变量都存在一个zval变量容器中,容器除了包含变量的类型和值外,还有is_ref是否属于引用还有个refcount引用计数,当把一个变量赋值给另一个变量将增加引用次数,在变量被unset或者离开它的作用域时,引用计数减1,当引用计数减为0时,内存回收。但这样的机制在循环引用时存在内存泄漏。例:当把一个数组本身当做一个数组元素时,就出现如图:当数组a被unset之后,就

2017-03-18 18:24:14 463

原创 php内存管理之内存分配

鉴于系统开销的调用,一些对性能有要求的应用通常会在自己的用户态进行内存管理,比如在第一次申请一块较大的内存留着备用,而不是使用完马上还给操作系统,可以进行复用,避免多次申请和释放带来的开销。一般读取超大文件到内存、超大数组、大循环内存没有释放等都会出现内存占用过大。php.ini 通过memery_limit或者在代码里ini_setl来设置最大内存php内存是通过zendmm来进

2017-03-18 14:44:37 1734

原创 php中数组+和array_merge区别

主要区别在与两个或多个数组在合并时,出现相同的键名时处理方式不一样一、当键名为数字时,array_merge不会覆盖原来的值,+会抛弃后面的值<?php/** * Created by PhpStorm. * User: lzc * Date: 2017/3/18 * Time: 10:02 */$a = [1,2,3];$b = [4,5,6];var_dump($a+$b

2017-03-18 14:25:38 1647

原创 为什么PHP中in_array效率低

这个问题主要原因是in_array判断某个值是否存在数组中,对比时会把值类型转化成一致的类型进行比较,如此一来效率就慢很多。具体参考http://www.zendstudio.net/archives/php-in_array-s-low-performance/#more-1836

2017-03-18 13:56:23 2372 1

原创 php for循环和foreach区别

php中for循环和foreach区别如下:1、for需要先知道数组长度再操作,foreach不需要2、foreach效率比for高很多,主要原因是for要进行很多次条件判断,另外从数组变量的数据结构来看foreach直接通过结构体中next指针获取下一个值,而for循环需要根据key先进行一次hash才得到值。

2017-03-18 13:40:15 1315

原创 php常见魔术常量和魔术方法

常见的魔术常量有:__LINE__文件的当前行号__FILE__文件的完整路径和文件名__DIR__文件所在目录__FUNCTION__函数名称__CLASS__类的名称__METHOD__类的方法名常见的魔术方法有:__construct构造函数,当对象被实例化时会被调用__destruct析构函数,当对象被销毁时会被调用__get当读取不存在的属性的值时

2017-03-18 13:14:00 328

原创 php中isset和empty区别

php基础,isset和empty

2017-03-18 09:57:59 436

空空如也

空空如也

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

TA关注的人

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