自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis持久化功能思维导图

redis持久化功能思维导图因为最近在看《redis设计与实现》这个本书,所以就想用思维导图总结下看过的知识点,以备后面复习。闲话不多说,直接上图。

2020-12-10 10:14:49 213

原创 《代码整洁之道》读书笔记

     因为本人是一个小菜鸟,所以需要在很多地方下功夫,最近突然发现自己的代码规范还是差很多,没有系统的去学习代码规范的相关东西,所以打算补一下这方面的缺陷,毕竟不管是工作多少年的人,在这方面大多人都很难拥有一个良好的编程风格和代码规范。在此记录下读书过程中摘抄的一些笔记,方便以后的查阅。1、勒布朗法则:稍后等于永不!    所以,不要想着留着以后去做,因为以后永远都不会去做了,最好是一开始就做...

2018-04-19 19:22:39 339

原创 四月的哀思

下面这首小诗是我还在上初中的时候写的,真的都快忘记了自己喜欢文学了,今天打开初中的笔记本,偶然看到之前写的这篇小诗,才想起来,原来自己也曾经文艺过。想当初,为了摘抄喜欢的诗歌和文字,浪费了多少时间,笔记本摘抄了好几本,特别喜欢的都会努力背下来,用到自己的文章和作文中去……不知道,当初的自己去了哪里,这些笔记本是属于我的青春,我的回忆,是我一辈子不可忘怀的青葱岁月。《四月的哀思》伴着风 ...

2018-08-31 18:28:37 526 4

原创 个人反思

时间如白驹过隙,转眼间毕业已经一年了,很久没有静下心来仔细的反省下自己,现在能坐下来写写东西,不是因为别的,而是因为最近遇到了些许不顺心,感觉有点不安,觉得应该反思下自己。搞不清楚自己,或许大部分人都是这样,在风光无限的时候根本无暇来思考,也不愿意去思考,只有当自己工作、生活等遇到不顺心才会想到去思考,也许这就是人的弊端。有人说过,人之所以区别于动物,正是因为人会思考,倘若人都不思考了,那和动物还...

2018-08-31 18:05:24 1040 2

原创 Xcode打包生成ipa四个选项的具体区别

xcode打包.ipa文件时,会出现如上图所示四个选项,最好是要搞清楚这四个选项的区别,否则会走很多弯路,我最深的体验就是:当我需要测试自己写的demo时,当时没有搞清楚这四个选项,所以当我自己手机安装不了自己打包好的demo时,也不知道是什么原因,刚好同事的iPhone手机可以安装,所以就没有追究我自己手机安装不了的原因,但是时间一久,借别人手机总是很不方便,没办法,只能解决自己...

2018-08-22 16:47:24 1159

原创 iOS中如何将NSLog日志打印并输出到指定文件中?

iOS中如何将NSLog日志打印并输出到指定文件中?我们在模拟器运行时,可以直接通过打印到控制台的日志来定位并解决问题,但是对于真机,日志没法保存,不好分析问题。所以有必要将日志保存到应用的Docunment目录下,并设置成共享文件,这样才能取出分析。直接上代码吧:代码块在AppDelegate类中:// 将NSlog打印信息保存到Document目录下的文件中- (vo...

2018-08-22 10:14:03 1239

原创 经典句子摘抄

经典句子摘抄1.生而为人,我很抱歉。——寺内寿太郎 2.向来心是看客心,奈何人是剧中人。——张爱玲 3.我年华虚度,空有一身疲倦。——海子 4.我假装无情,其实是痛恨自己的深情。——马良《坦白书》 5.我们卑微脆弱,配不上这天长地久。——《眠空》 6.这是一个流行离开的世界,但是我们都不擅长告别。——米兰·昆德拉 7.我只是个戏子,在别人的故事里,流着自己的泪。——席慕蓉 8.同...

2018-08-08 10:24:22 11804

原创 iOS中引入第三方静态库头文件找不到的问题解决方案

       在前几次项目中,因为要引入一些自己打包好的静态库,也就是第三方静态库,但是出了很多问题,有时会遇到莫名其妙的问题,明明有这个文件,但是就是显示头文件找不到。为了在以后能够快速处理这种问题,所以在这里做一个全面的总结,以备后时只需,有不对的地方欢迎大家指正。   头文件找不到的相关问题可能有下面几种:1、'GPBProtocolBuffers.h' file not found   我...

2018-04-24 14:25:38 13600

原创 iOS开发中,如何将第三方或者自己生成的静态库(SDK)引入到自己的项目中?

接上篇博客所讲,我们打包好自己的静态库(SDK)之后,如何将它引入到我们的项目中呢?1、我们将我们想要引入的静态库直接拖进我们的工程中,2、在AppDelegate.m文件中引入静态库。比如:3、上述操作完之后,运行工程,可能会报找不到引入的SDK中头文件的相关错误,这时,我们需要在Targets下面的Build Settings中的Search Paths中的下面这两

2018-01-21 17:45:29 4662

原创 iOS学习过程中遇到的各种坑

前段时间因为各种原因需要学习iOS,因此我就开始了iOS学渣之路,因为是零基础,所以我在iOS开发过程中遇到了各种坑,现在将iOS开发过程中遇到的各种问题记录下来,以备后面复习。本来是应该从语言相关开始说起的,但是因为最近要上架APP,所以我打算先说说如何将代码打包成静态库,网上也有很多相关的博客或者教程,但是还是想自己再总结一下,加深一下印象。一、什么是库?库是共享程序代码的一种

2018-01-21 16:47:53 561

原创 学无止境!!!

好久都没有写过博客了,最近因为要学习很多新的东西,所以打算重新开始写博客,将自己的学习点滴记录下来,以备后面的复习。--------------------------------------------------------------------黄金分割线-------------------------------------------------------------------

2017-06-30 13:58:52 509 2

原创 感恩

今年大四,在秋招时找了将近三个月的工作,拿了四个Offer,其中一个杭州,两个西安,一个北京。其实说起来只有一个Offer是让我最满意的,那就是小米的Offer。其他三个公司都是小企业,根本不值一提,说起小米我感觉面试官真的好好,真的很感谢他让我走进小米,即将去实习了,我一定会好好努力学习,努力工作...........感谢你。说这些只是为了让自己在今后的工作中兢兢业业,珍惜这次机会.......

2017-02-20 17:32:49 507 2

原创 Effective C++读书笔记

前些天看了《Effective C++》这本书,感受颇深,现将读书过程中记录的相关笔记总结如下,希望会对大家有所帮助。1、千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用。    原因:返回一个局部对象的引用他的问题在于,局部对象仅仅是局部的,也就是说局部对象是在定义时被创建,在离开生命空间时被销毁的。所谓生命空间就是他们所在的函数体,当函数返回时,程序的控制离

2017-02-10 17:20:03 526 2

原创 TCP为什么是进行三次握手与四次挥手?

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。(1)位码即tcp标志位:有6种标示:SYN(synchronous建立联机)、 ACK(acknowledgement 确认) 、PSH(push传送、ST(reset重置)、 URG(urgent紧急) 、Sequence number(顺序号码) Acknowledge number(确认号码)。

2016-07-27 12:19:48 2790

原创 time_wait()是什么状态?

TIME_WAIT在 TCP 的状态流程图中是一个很容易被误解的状态。它是表示socket可以进入和留存相当长一段时间的状态,如果你的系统中有很多 socket 处于TIME_WAIT状态,那么当你需要创建新的 socket 连接的时候可能会受到影响,这也会影响到你的程序的扩展性。1、TIME_WAIT状态原理       通信双方建立TCP连接后,主动关闭连接的一方就会进入T

2016-07-27 12:16:54 1494

原创 微信红包问题求前K个元素(即堆排序的应用)

如我们要在100000个人中找出发红包次数最多的前100个人,那么我们可以用到堆排序的相关知识,下面我们来具体实现一下它,相关代码如下所示://这是做一个向下调整voidAdjustDown(int* a,intsize,intparent){          intchild = parent*2+1;          while(ch

2016-07-27 11:20:23 886

原创 已知二叉树的前序与中序遍历序列,求重建后的二叉树(即是二叉树的重建)

关于二叉树的概念,想必大家基本上都已经很清楚了,那么在这里我就不再一一赘述了。那么请看下面这道题:如果已知某二叉树的前序遍历结果为{1,2,4,7,3,5,6,8},中序遍历序列为{4,7,2,1,5,3,8,6},求此重建后的二叉树。1、实现思路:      我们都知道前序遍历是先访问根节点,然后是左子树,接着是右子树,因此在前序遍历序列中,第一个节点值就是根结点的值。但是在中序遍历

2016-07-27 11:13:12 1026

原创 C++实现二分查找算法

想必二分查找很多人都不陌生,或许说很熟悉,但是在实际生活中又有很多人不能正确的写出它的相应代码,因为二分查找的边界条件等很难控制,下面我们来仔细的分析一下二分查找,这只是个人看法,如有异议,欢迎提出。 1、二分查找可以解决的问题:二分查找可以解决预排序数组的查找问题。只要数组中包含T(即要查找的值),那么通过不断的缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组,将数组的中间项与T

2016-07-27 11:08:26 18516

原创 死锁产生的必要条件及其处理办法

虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具备一定的条件,死锁的发生必须具备以下四个必要条件。  1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。  2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻

2016-07-26 15:50:37 9766

原创 可重入函数与线程安全之间的区别与联系

1、什么是线程安全?     一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。反之,如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。所以,有这么四类函数称为线程不安全的:- 不保护共享变量的函数;- 函数状态随着调用改变的函数;- 返回指向静态变量指针的函数;- 调用线程不安全函数

2016-07-26 15:17:52 988

原创 常用的操作系统的进程调度算法

1、调度算法要达到的目标:(1)公平性考量: 让每个进程尽量平均的占用CPU;(2)效率考量: 尽量增大CPU的吞吐率,让CPU在所有时间基本上处于忙碌状态;(3)响应时间考量: 让交互用户之间的响应时间达到最小;(4)回转(TurnAround): 让批处理用户等待输出的时间尽可能的小;(5)吞吐率(ThroughPut): 让一段时间内CPU尽可能多的处理任务;  但在

2016-07-26 14:54:31 1219

原创 Linux中的task_struct结构体

我们都知道,在广义上,所有的进程信息都被放在一个叫做进程控制块的数据结构中,这个可以理解为进程属性的集合。这里的进程控制块也就是所谓的PCB,他是一个非常大的数据结构,那么它到底有多大呢?如果没什么意外,这个结构体可能是这个宇宙中最大的单个变量了,一个结构体就有好几k那么大,想想他包含了一个进程的所有信息,这么庞大也不足为怪了。LINUX内核代码纷繁复杂,千头万绪,这个结构体是系统进程在执行过程中

2016-07-26 14:52:01 2404

原创 二叉树常考面试题

树相关的一些概念。树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。结点:结点包含数据和指向其它结点的指针。结点的度:结点拥有的子节点个数。叶子节点:没有子节点的节点(度为0)。父子节点:一个节点father指向另一个节点child,则child为孩子节点,father为父亲结点。兄弟节点:具有相同父节点的节点互为兄弟节点。节点的祖先:从根节点开始到该节点所经的所有节点都可以称为该节

2016-07-26 13:10:41 429

原创 用两个栈实现一个队列

用两个栈实现一个队列1、线性表分为:顺序表和链表。栈:只允许在尾上(即是栈顶)进行插入与删除。队列:它是在队尾插入,队头删除。2、栈选数组(即顺序表)结构时(比选链表结构更好):因为选数组结构可以进行size++与size--,而且效率高。     栈选链表结构:3、队列选数组结构时:选数组结构不好,因为删除时需要整体前移,因为队列是在队头进行删除,删除了队头元素时,其后面所跟的其他元

2016-07-26 13:10:38 352

原创 C++关于模板

假设现在要实现一个比较两个数是否相等的重载函数。1、两个int类型的操作数比较bool IsEqual (int left, int right){     return left == right;}2、两个string类型的操作数比较bool IsEqual (const string& left , const string& right){     return left == right

2016-07-26 13:10:35 299

原创 C++的特性——继承

继承性是面向对象程序设计的最重要的特性,可以这么说,如果没有掌握继承性,就等于没有掌握类和对象的精华,所以很好的掌握继承性是我们学好C++的基础,下面我们对它进行一一介绍。   继承是面向对象复用的重要手段。通过继承定义一个类,它们的类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。    有三种继承方式:Public继承,Protected继承,Private继承。总结:基类的私有成员

2016-07-26 13:10:32 353

原创 单链表常见面试题

一、比较顺序表与链表的优缺点:单链表:它是一种链式存储的线性表,用一组地址任意的存储单元存放线性的的数据元素,称存储单元为一个节点。顺序表:采用顺序存储结构的线性表通常称为顺序表。线性表的顺序存储结构:指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间的逻辑上的相邻关系。线性表优

2016-07-26 13:10:29 462

原创 动态内存管理

C语言动态内存管理C语言使用malloc/calloc/realloc/free进行动态内存管理。void Test (){     int* p1 = (int*) malloc (sizeof (int)*4);     free(p1 );     // 1.calloc/realloc/malloc 的区别是什么?     int* p2 = (int*) calloc(4, sizeof

2016-07-26 13:10:26 367

原创 程序员必备面试题

1、使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:输入test.exe -a 1 2 执行1+2输出3#define _CRT_SECURE_NO_WARNINGS 1#include #include #include int main(in

2016-07-26 13:10:22 349

原创 面试常考题:不调用库函数,怎样实现字符串操作函数?

一:字符串操作函数的功能及应用1、strcpy()函数      Strcpy(字符数组1,字符数组2)此函数是字符串拷贝函数,它的作用是将字符串2复制到字符数组1中去。#include#include#includeint main(){ char str1[30] = { "hello world!!!" }; char str2[30]; strcpy(str2, str

2016-07-26 13:10:19 1452

原创 时间复杂度和空间复杂度

1、时间复杂度      所谓时间复杂度实际上就是函数,既是函数计算执行的基本操作次数。ps:这里的函数是指数学里面的函数,而不是C语法里的函数。      如下面这个代码:void Test1 ( int N ){           for (int i = 0; i N ; ++ i)          {                    for (in

2016-07-19 10:49:46 560

原创 关于C++中的继承

继承性是面向对象程序设计的最重要的特性,可以这么说,如果没有掌握继承性,就等于没有掌握类和对象的精华,所以很好的掌握继承性是我们学好C++的基础,下面我们对它进行一一介绍。   继承是面向对象复用的重要手段。通过继承定义一个类,它们的类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。    有三种继承方式:Public继承,Protected继承,Private继

2016-07-19 10:42:20 425

原创 关于指针

不得不说,指针对于学习c/c++的人而言的确是一个头疼但是又特别重要一个问题,在这里,我就将自己的学习经验分享给大家,希望能够帮助更多的人学习。说起指针,或许你还在为到底什么是指针?指针和数组到底是否相等?指针数组是什么?数组指针是什么?函数指针又是什么?函数指针数组,函数指针数组指针它们又是什么?看完这个你就会对指针有更深一步的了解了,下面我为大家一一解答。1、什么是指针?      要

2016-07-19 10:40:01 391

原创 栈和队列

栈的定义--Stack栈只允许在末端(即是栈顶)进行插入和删除的线性表。栈具有后进先出的特性(LIFO,Last In First Out)。线性表分为:顺序表和链表。栈:只允许在尾上(即是栈顶)进行插入与删除。队列:它是在队尾插入,队头删除。下图是详细说明:2、栈选数组(即顺序表)结构时(比选链表结构更好):因为选数组结构可以进行size+

2016-07-19 10:18:42 464

原创 C++中传值、传址与传引用的区别

1、参数传递的概念 所谓参数传递就是用函数调用所给出的实参(实际参数)向函数定义所给出的形参(形式参数)设置初始值的过程。在c++中,调用函数时有三种参数传递方式,分别为:(1)传值调用;(2)传址调用(即是传指针);(3)传引用;    总体上参数传递可以分为两类,由形参的类别决定:值调用与引用调用。除了定义为引用类型的形参外,其他类型的形参都是对应着值调用。指针传递也是

2016-07-19 10:07:55 6361

原创 进程间通信(上)

进程间通信的方式:命名管道和匿名管道、消息队列、信号量、共享内存等这几种方式,下面我们对其进行一一解读。

2016-07-02 10:18:33 524

原创 搜索二叉树的增删查改

首先我简单介绍一下搜索二叉树的概念及有关性质,纯属个人观点,如有错误,欢迎不吝赐教。1、搜索二叉树的概念:根结点的左子树都小于它,它的右子树都大于它,且它的左子树与右子树都是搜素二叉树。2、二叉搜索树(搜索二叉树):搜索二叉树即是排序二叉树,中序遍历它的结果是有序的(升序)。3、二叉搜索树的性质:每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。左子

2016-07-01 14:30:59 660

原创 单链表的相关面试题

单链表的头插,尾插,删除,查找。约瑟夫环及求环的长度,判断单链表是否相交以及交点,单链表的逆序/正序打印。两个有序单链表的合并。

2016-07-01 10:52:02 420

原创 Linux的常用命令

Linux常用指令,Linux基础知识

2016-07-01 10:30:47 2014

原创 博客搬家

将博客搬家到CSDN

2016-06-03 11:20:50 337

空空如也

空空如也

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

TA关注的人

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