自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幼儿猿

新奇的想法比技术更稀缺,但没有技术支持的好想法都是空中楼阁。

  • 博客(30)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 PHP如何实现一个单例

申请一个私有的静态成员变量来保存该类的唯一实例声明私有的构造方法,防止类外部创建对象声明一个静态公共方法,供外部获取唯一实例这三步走完,就是一个单例了,但是这个单例是不安全的,想要这个单例安全,还需以下两步(如有不完善还请补充)声明私有的克隆方法,防止对象被克隆重写__sleep方法,将返回置空,防止序列化反序列化获得新的对象<?php/** * 单列模式(防止对象克...

2019-05-30 11:08:35 1388

原创 InnoDB的多版本并发控制机制—— MVCC底层实现

什么是MVCC?MVCC是Multi-Version Concurrency Control(多版本并发控制)的缩写,MVCC没有统一的实现标准,不同的存储引擎对MVCC的实现方式是不同的,典型的有乐观并发控制和悲观并发控制。InnoDB对MVCC的实现采用的是乐观并发控制。InnoDB-MVCC如何实现?在《高性能MySQL》一书中,关于InnoDB-MVCC的实现是这样介绍的:...

2018-09-07 19:51:12 1189

原创 InnoDB-MVCC与乐观锁

最近通过《高性能MySQL》一书学习MySQL方面的知识,在看到书中所讲InnoDB-MVCC部分的时候,有一种强烈的感觉,这不就是乐观锁吗(入门级小学徒的疑惑脸)?当下便去网上以各种方式查找阅读MVCC和乐观锁相关的博客,发现大部分的博客对于这两者之间的关系都只字不提,提了的也是众说纷纭,关于两者关系的细节方面也十分暧昧没有定论。在暂时无法得出最终结论的情况下,我先谈谈在学习这方面知识后我自己对...

2018-08-29 12:31:48 3435 4

原创 浅谈哈希表与其映射函数(哈希函数)

哈希表又称散列表,通过把关键字key映射到数组中的一个位置来访问记录。映射过程通过函数实现,而这个函数就叫哈希函数,存放关键字的数组称为散列表。哈希表结构前面说了,关键字是存放在数组中的,所以哈希表的结构其实就是一个数组,为什么要采用数组来作为哈希表的数据结构呢?这里我不得不说数组的一些特性。 数组的时间复杂度是O(1),这里说的时间复杂度是访问复杂度,不是遍历复杂度。计算机内存...

2018-03-22 14:30:42 5546

原创 网易游戏-平台开发工程师-一面(电话面试)

面试公司:网易游戏 面试进度:一面 面试方向:平台开发工程师 面试地点:家 面试类型:电话面试 面试时间:2017年8月30号 面试时长:30分钟(左右)自我介绍; 最近做的项目(实验室线上面试系统); MVC; 该项目中M层怎么实现的; 怎样防止sql注入; 跨域(不清楚); InnoDB四个孤立级; 项目中登陆模块怎样实现; session和cookies;

2017-08-30 14:38:22 719 2

原创 算法之度度熊回家

原题一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少 距离?输入描述:输入一个正整数N, N <= 50。 接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100输出描述:

2017-07-26 16:51:27 1172

原创 算法之买帽子(求第三便宜的帽子价格)

原题度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。 度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?输入描述:首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1测试用例:10 10 10 10 10 20 20 30 30 40 4

2017-07-26 16:36:55 1517

原创 MySQL数据库判断字段是否为NULL的误区

在写sql语句时,很多时候会要求查询某个字段为/不为NULL的元组,大家的第一反应是这样:select*from tablename where user=NULL;其实在sql中,这样写是不正确的,这是很多人在最初写sql都会犯的一个错误,正确的写法如下:select*from tablename where isNULL(user);相反的,要获取某个字段不为NULL的元组应如下:select*

2017-05-22 13:56:37 1331

原创 去哪儿网-后台开发-一面

面试公司:去哪儿网 面试进度:一面 面试方向:后台开发 面试地点:西安站 面试类型:现场面试 面试时间:2017年4月14号 面试时长:45分钟(左右)面试官是一个男的,30岁出头,很和蔼,不会给人很大的压力。 面试开始时先做了一个简单的自我介绍,面试官听我是学PHP的,然后就问你是搞前端的还是搞后台的,这时候我心里就有点慌了,为啥呢,这面试官大概率不会PHP,他是个Java面试官,这

2017-04-15 15:46:47 2870 1

原创 八大排序——快速排序

作为一个学后台的同学,如果你不会希尔排序,我可以认为你学的不够,但如果你不会快速排序,那么我就要偷偷笑你了。快速排序算法最早由图灵奖的获得者Tony Hoare设计出来,更牛逼的是,这个算法被列为了20世纪十大算法之一。对,没错,是十大算法,不是十大排序算法,这足以看出这个排序算法在学界中大牛心目中的地位,我们这些程序猿还有什么理由不去学习它?不说玩笑话,下面让我们真正的体会一下快速排序。快速排序算

2017-03-20 22:27:44 603

原创 八大排序——直接插入排序

直接插入排序(Straight Insertion Sort)的基本操作是将一个元素插入到序列已经有序的那一部分中去,从而使序列中有序的部分逐渐扩大,直到整个序列有序。博主认为直接插入排序过程比较容易理解,所以不作过多赘述,直接上代码#include<stdio.h>void main(){ int a[6]={5,6,8,4,6,9}; int length=sizeof(a)/

2017-03-19 22:33:03 637

原创 八大排序——希尔排序

希尔排序(Shell Sort),是插入排序的一种。是直接插入排序的改进版,它是非稳定排序算法。其得名于它的提出者D.L.Shell,Shell Sort等算法的提出打破了“排序算法不可能突破O(n^2)”的魔咒,它将排序算法的时间复杂度提成到了O(nlongn),不可能超越的O(n^2)彻底成为了历史。 既然希尔排序是直接插入排序的改进版,那么它肯定是在直接插入排序的优势上做文章。了解直接插入排

2017-03-16 22:29:18 718

原创 八大排序算法——冒泡排序

冒泡排序冒泡排序,顾名思义,它是将关键字按照你想要的序列一个一个“冒”出来,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 假设我们待排序的数组是a[6]={8,9,1,3,5,7},所要求的序列是升序,那么如下图,算法的第一次冒泡是先将最大关键字9“冒”到末置位。其过程:先将8和9比较,8<9不交换;再将9和1比较,9>1交换;然后将9和3比较,9>3交换,以

2017-03-14 14:33:06 642

原创 八大排序算法——堆排序

八大排序排序,分为内部排序和外部排序,内部排序是指将数据记录在内存中进行排序,而外部排序因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存,所以称之为外部排序,我们这里讲的八大排序全部属于内部排序。八大排序时间/空间复杂度及稳定性堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分

2017-03-13 15:28:27 1021

原创 稠密索引与稀疏索引

在了解稠密索引和稀疏索引之前我们先来了解一下什么是聚焦索引。在一个文件中,可以有多个索引,分别基于不同的搜索码。如果包含数据记录的文件按照某个指定的顺序排列,那么该搜索码对应的索引就是聚焦索引。稠密索引在稠密索引中,文件中的每个搜索码值都对应一个索引值。也就是说,稠密索引为数据记录文件的每一条记录都设一个键-指针对。如下图所示,索引项包括索引值以及指向该搜索码的第一条数据记录的指针,即我们所说的键

2017-03-11 16:39:06 8961 3

原创 ACID——MYSQL事务的四个特性

ACID指出每个事务型RDBMS必须遵守四个属性,即原子性、一致性、孤立性、持久性。原子性原子性意味着事务的整体性和不可分割性,这就类似化学中的原子,是一个不可分割的单元。一个事务可以是一个(任务)操作,也可以是多个(任务)操作,假设一个事务由多个操作(任务)组成,那么这些操作必须都执行成功这个事务才被认为执行成功,只要其中有一个任务执行失败那么整个事务都会被认为执行失败,导致自动回滚到初始状态,

2017-03-08 21:30:53 2511

转载 KMP算法详解

作者: July  、 saturnma     时间; 二零一一年一月一日-----------------------本文参考:数据结构(C语言版) 李云清等编著、算法导论作者声明:个人July 对此24个经典算法系列,享有版权,转载请注明出处。引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配

2017-03-07 15:26:51 374 1

原创 简述linux启动过程

LINUX操作系统启动过程简单描述:第一阶段(BIOS启动引导阶段) 实现硬件的初始化以及查找启动介质从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理

2017-03-07 14:40:32 1217

原创 怎样在radio类型的input标签中动态的加checked

怎样在radio类型的input标签中动态的加checked要想在radio类型的input标签中动态的加checked我理解的是肯定需要判断,但是判断怎么加呢?

2017-03-01 18:31:31 6070

原创 ThinkPHP3的CURD简述

ThinkPHP3的CURD操作方法简介

2017-02-27 21:33:11 448

原创 http状态码

http常用状态码100到199(消息):这一类状态码代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。200到299(成功):这一类状态码代表请求已成功被服务器接收、理解、并接受。300到399(重定向):这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Locatio

2016-12-09 08:47:53 447

原创 MySql AB复制(主从复制)的基本原理与过程

MySql AB复制(主从复制)什么是MySql的AB复制? MySql的AB复制(replication、也叫主从复制)是一个异步的复制,从一个MySql实例(Master)复制到另一个mysql实例(Slave)。实现整个主从复制,需要由Master服务器上的IO进程,和Slave服务器上的Sql进程和IO进程共同完成。要实现主从复制,首先必须打开Master端的binary log(bin

2016-12-06 21:12:07 2424

原创 TCP拥塞控制

浅谈网络拥塞以及他的控制方法什么是网络拥塞网络拥塞的对象是网络资源。包括链路宽带、结点缓存或处理能力等。在特定的时间内,当对网络中某种资源的需求超过了其可用部分时所出现的网络性能变差直至系统崩溃的现象叫做网络拥塞。网络拥塞的成因以及危害第一,当分组到达速率超过路由器输出链路的容量时,路由器要缓存已输入但无法立即输出的分组。所以网络拥塞带来的第一种危害是当分组以大于或接近链路容量的速率到达时,分组将

2016-12-06 17:12:46 2004

原创 浅谈TCP连接的三次握手与四次挥手(2017.08.08修复版)

TCP连接的建立与释放三次握手(建立TCP连接)TCP连接建立有如下几个目的,首先,要使双方都知道对方已经准备好了。其次,双方要协商如最大报文长度、最大窗口长度和服务质量等通信参数。第三,分配和初始化如缓存长度,各状态变量和连接表中的表项等运输实体资源。第一次握手(客户机向服务器发送请求) 客户机进程向服务器进程发送一个SYN报文段(封装在一个IP数据报中、不包含应用层数据),其首部中的标志SY

2016-11-21 17:03:21 672 2

原创 php单双引号对变量解析的影响以及php向mysql插入数据时的变量解析问题详解

php单双引号对变量解析的影响以及php向mysql插入数据时的变量解析问题详解该博客对php中echo输出语句中单双引号的使用区别给出了详细解释,并阐明了php向mysql写入数据时变量解析的规范问题,如有歧义请及时指出。echo语句中单双引号的区别我们在学习php时大概都遇到过这样的问题,即经常见到代码中使用echo语句时有时候使用单引号,有时候使用双引号,那么到底该使用哪个呢?它们又有什么

2016-11-16 16:36:40 4845 3

原创 windows10更新以后古格浏览器部分汉字显示成方框解决方案

在谷歌浏览器地址栏输入chrome://flags/ 找到将DirectWrite然后点击下面的”停用”按钮后重新启动浏览器即可

2016-10-13 17:17:45 5760

原创 封锁机制以及读锁和写锁的区别

我们在开发中也许都有感受到,数据库的并发操作会带来许多问题,比如丢失更新、不可重复读、读脏数据(幽灵数据)等等,常见的比如自动售票系统,站点1、2同时读出剩余的票数n张,站点1售出一张票,并将n-1写入数据库,站点2也售出一张票并将n-1写入数据库,但是我们都知道,应剩余n-2张票,这就是典型的丢失数据更新的实例。为避免该类问题的产生,我们采用了封锁机制,简单点就是当一个线程要对数据库进行相关操作时

2016-08-02 17:10:25 7219 2

原创 解决php向mysql数据库插入数据乱码问题

mysql数据库乱码问题解决办法我们在使用数据库(mysql)的时候最怕的就是数据库中的中文出现乱码,而且百度中除了更改配置文件中的字符集好像也没有其他建设性的方法,更重要的是这些方法我都一一尝试过了,好像并不能解决问题。那么我就为大家提供一个比较实用而且我一直在用的办法。 因为我是学php开发的,那我讲的这些方法在php代码中都是可以使用的,其他程序设计语言中我没尝试过,但是操作mysql数据库

2016-07-25 13:40:49 7906 14

原创 Mysql数据库的导出

mysql数据库备份时注意这几个关键点保证备份过程通畅无误

2016-07-22 15:02:02 399

原创 MYSQL事务的开启与提交

对于一个MYSQL数据库(InnoDB),事务的开启与提交模式无非下面这两种情况:1&gt;若参数autocommit=0,事务则在用户本次对数据进行操作时自动开启,在用户执行commit命令时提交,用户本次对数据库开始进行操作到用户执行commit命令之间的一系列操作为一个完整的事务周期。若不执行commit命令,系统则默认事务回滚。总而言之,当前情况下事务的状态是自动开启手动提交。2&...

2016-07-22 14:36:37 12931

InnoDB的多版本并发控制机制——MVCC

InnoDB多版本并发控制机制MVCC的原理与实现,包括底层代码实现以及快照的构建原理。RR隔离级别和RC隔离级别的实现逻辑。

2018-10-09

MSQL规范性及事务第一讲

该PPT简单介绍了数据库前三范式并举例解释,还粗略介绍了mysql事务,适合初学者对mysql这方面的知识进行简单了解。

2017-03-08

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

TA关注的人

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