愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

设计模式之适配器模式

一、使用场景 记得我初中的时候,用压岁钱买了台NDSi,很是高兴,那时候市面上大部分的游戏机都是进口的水货(如日版、美版、欧版),而我所买的版本就是日版的NDSi。然后遇到了一个问题,日本的电压是110V,因而日版NDSi自带的充电电源也是110V范围内的,而我国的电压都是220V,这种情况下,就有人发明出了“火牛”这东西,将110V的电源插在火牛上,火牛再插在220V的插座上,就解决了电压不...

PHP新特性总结(一)——命名空间

命名空间是现代编程语言中很常见的一个概念,如C++/Java均支持命名空间的概念(Java中叫做包), 而PHP之前是不支持命名空间的,但是从PHP5.3.0,便开始加入了对命名空间的支持。它可以对限定 类(包括抽象类、接口和traits)、函数、常量的作用范围 定义命名空间 定义命名空间用...

作品 | iLIVE爱直播

作品介绍 iLIVE是一个致力于图文直播的Web应用系统,使用PHP语言编写。它能够方便地提供在线图文直播、在线访谈、实时发布会等实时图文应用 场景的解决方案

一张图图解各种开源协议

开源协议有很多种,什么BSD协议、Apache协议等等,傻傻分不清。然而,乌克兰程序员Paul Bagwell,画了一张分析图,直观地表现出了各个开源协议的特点(附图为阮一峰先生汉化过的版本)

链表总结

链表是一种常用的数据结构,相比数组,它的优点是可以不用固定长度,不用预先分配一段连续的内存空 间,因此它的空间利用率比较高。然而数组的优点,也是它的缺点,数组的检索操作可以在O(1)时间内 完成,而链表往往需要O(n)时间 链表的节点 实现一个链表,首先需要定义链表的节点结构体,用于保存数据和与其他节点...

STL——栈

栈是一种LIFO(后进先出)的数据结构,可以用来模拟递归、实现倒序等等 STL栈的常用操作 #include <iostream> // 使用STL栈,需要引入stack头文件 #include <stack> #include <cstd...

设计模式之观察者模式

一、使用场景 观察者模式,也叫做发布者订阅者模式,是常用的一个设计模式,实际应用开发中经常可以看到观察者模式的影子,如JavaScript中的事件监听就是运用到了观察者模式的思想。观察者模式适用于 当一个对象的改变需要同时改变其他对象,且对象的改变不知道有多少其他对象待改变的时候,就可以使用观察者模式了 二、基本角色

Composer简单入门

Composer是一个依赖管理工具,它是PHP开源社区中受nodeJS的npm和ruby的bundler的启发所开发出来的一个工具,用以解决库依赖的问题。现在越来越多的开源产品中都逐渐加入了对composer的支持。为了能够使用这么一个方便的工具,还是有必要来学一下它的,下面就是个人对这个工具入门学习的记录 系统要求 并不是所...

STL——优先队列

STL中的优先队列,队首放置的是最大值 基本操作 #include <iostream> // 使用优先队列,需要引入queue头文件 #include <queue> using namespace std; int main() { ...

二叉最小堆

二叉堆是指用二叉树来实现堆这一种数据结构 堆的基本操作 1、插入一个数值 插入一个数值,要保持堆顶是最小的,我们可以...

冒泡排序算法的优化

今天我们要来谈一种算法,是的,你没有看错,就是“冒泡排序”,这是最基本最初级的一个算法,然而,尽管冒泡排序很初级,却也有优化的空间 我们采用PHP来描述这个算法,最基本的冒泡排序,是这样子的: function bubbleSort(&$arr) { $n = count($arr); fo...

Java设计模式之简单工厂模式

一、工厂模式的应用场景 可以统一管理对象的实例化,比如一个接口有多个实现类,使用者在使用的时候,可以传给工厂一个参数,工厂根据这个参数来选择具体的实现类。或者当一个项目中,new了成百上千个某接口的实现类,然后突然有一天,要把这个实现类换名字了,那么是非常可怕的,因为需要修改成百上千个文件,这时候,如果使用工厂模式,则只要修改一个地方就可以 二、参与者 1、接口...

Git学习(一)基本操作

1、配置用户名邮箱信息 git config --user.name "RuphiLau" git config --user.email "rf126@qq.com" 2、查看配置信息

操作系统引论总结

一、计算机系统的组成 计算机系统分为硬件系统和软件系统,其中, 1、硬件系统是计算机系统的实体,它分为3个部分: 中央处理器(CPU),由运算器(ALU)、寄存器、控制器组成 存储器 外围设备

时间与日期使用小结

一、Java8中新增的日期和时间包 首先要导入包java.time.* 1、Clock类 Clock clock = Clock.systemUTC(); clock.instant(); // 返回 2016-03-10T12:44:45.429Z clo...