自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MAC 常用快捷键速查

基本:Command + Z 撤销 Command + X 剪切  Command + C 拷贝  Command + V 粘贴  Command + A 全选  Command + S 保存  Command + F 查找应用:Command + Control + F 全屏,再按一次恢复Command + H 隐藏窗口Command + M 最小化窗...

2018-11-21 20:13:00 247

转载 七层协议

2018-11-15 16:29:15 185

转载 YAML快速入门

我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于应用配置上。然后在引入XML的时候,我们介绍properties格式在表现层级关系和结构关系的时候,十分欠缺,而XML在数据格式描述和较复杂数据内容展示方面,更加优秀。到后面介绍JSON格式的时候,我们发现JSON格式比较XML格式,更加方便(除去数据格式限制之外),所以...

2018-11-14 20:25:09 181

转载 Kubernetes

核心组件    2. openstack,docker,mesos,k8s什么关系?在 Docker 概念普及期,有很多人担心 Docker 可能会取代 OpenStack,但 OpenStack 社区大牛用上面这张图解释了二者的关系:Docker 主要针对 Paas 平台,是以应用为中心。 OpenStack 主要针对 Iaas 平台,以资源为中心,可以为上层的 PaaS 平台提...

2018-11-14 20:06:30 121

转载 云存储&云数据库

从对应的层面来讲1. 云存储:是在资源层,即云的iaas层,提供的是存储资源能力。2. 云数据库:是在平台层,即云的paas层,提供的是中间件服务能力。本地的数据库迁移到云端对应云数据库,而本地的硬盘迁移到云端只能对应云存储。从提供的服务来说1. 云存储:提供存储能力,更多面对的场景是非结构化类数据,如文件,图片,视频等。2. 云数据库:提供基础的数据库和数据对象管理能力,既包括ora...

2018-11-14 16:20:51 1004

原创 lintcode_380. 两个链表的交叉

lintcode380. 两个链表的交叉描述:请写一个程序,找到两个单链表最开始的交叉节点。样例:下列两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始交叉。 挑战...

2018-05-23 11:55:02 222

原创 lintcode_112. 删除排序链表中的重复元素

lintcode112. 删除排序链表中的重复元素描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例:给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null/** * Definition for ListNode *...

2018-05-22 21:01:44 149

原创 lintcode_452. 删除链表中的元素

lintcode452. 删除链表中的元素描述:删除链表中等于给定值val的所有节点。样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。/** * Definition for ListNode * public class ListNode { * ...

2018-05-22 20:56:38 151

原创 lintcode_167. 链表求和

lintcode167. 链表求和描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null/** * Definiti...

2018-05-22 11:40:32 155

原创 lintcode_165. 合并两个排序链表

lintcode165. 合并两个排序链表描述:将两个排序链表合并为一个新的排序链表样例:给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。//思路,两个链表都为有序,则每次比较两个链表头元素,取小的加入合并链表的新一个节点。/** * Definit...

2018-05-22 10:04:50 209

原创 lintcode_726. 验证满二叉树

lintcode726. 验证满二叉树描述:如果一棵二叉树所有节点都有零个或两个子节点, 那么这棵树为满二叉树. 反过来说, 满二叉树中不存在只有一个子节点的节点.满二叉树 1 / \ 2 3 / \ 4 5不是一棵满二叉树 1 / \ 2 3 / 4 样例:给出树 {1,2,3}, 返回 tr...

2018-05-21 17:05:31 204

原创 lintcode_469. Same Tree

lintcode469. Same Tree描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1 ...

2018-05-21 12:24:55 144

原创 lintcode_149. 买卖股票的最佳时机

lintcode149. 买卖股票的最佳时机描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例:给出一个数组样例 [3,2,3,1,2], 返回 1public class Solution { /** * @param prices: Given an integer arra...

2018-05-21 12:24:13 195

原创 lintcode_56. 两数之和

lintcode56. 两数之和描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。(tips:你可以假设只有一组答案。)样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].挑战:Either of...

2018-05-20 11:48:32 404

原创 lintcode_67. 二叉树的中序遍历

lintcode67. 二叉树的中序遍历描述:给出一棵二叉树,返回其中序遍历样例:给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].挑战:你能使用非递归算法来实现么?思路1:树采用递归很好解决问题,中序遍历为左根右/** * Definition of TreeNode: * public class TreeNode { ...

2018-05-20 11:47:42 299

原创 lintcode_102. 带环链表

lintcode102. 带环链表描述:给定一个链表,判断它是否有环。样例:给出 -21->10->4->5, tail connects to node index 1,返回 true挑战:不要使用额外的空间思路:定义两个快慢指针,快指针一次走两步,慢指针一次走一步,当链表有环时,快指针一定在某个时候追上慢指针,当快指针走完时还没有碰到慢指针,则没有环。代码如下:/** * ...

2018-05-20 11:46:51 185

原创 lintcode_420. 报数

lintcode420. 报数描述:报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:1, 11, 21, 1211, 111221, ...1 读作 "one 1" -> 11.11 读作 "two 1s" -> 21.21 读作 "one 2, then one 1" -> 1211.给定一个整数 n, 返回 第 n 个顺序。样例: 给定...

2018-05-20 11:46:04 220

原创 lintcode_35. 翻转链表

lintcode35. 翻转链表描述:翻转一个链表样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战:在原地一次翻转完成思路:i,m,n分别为链表连续的三个节点,遍历到m,将m指向i,此时链表就断开了,所以必须保存下一个节点/** * Definition for ListNode * public class L...

2018-05-20 11:45:10 170

原创 lintcode_97. 二叉树的最大深度

lintcode97. 二叉树的最大深度描述:给定一个二叉树,找出其最大深度。(二叉树的深度为根节点到最远叶子节点的距离。)样例:给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.思路:对于树而言,很容易想到递归,树的深度就等于max{左子树的深度,右子树的深度} + 1;左子树的深度又可以看做以左孩子节点为根节点,右子树的深度又可...

2018-05-20 11:44:22 254

原创 lintcode_372. Delete Node in a Linked List

lintcode372. Delete Node in a Linked List描述:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。样例:Linked list is 1->2->3->4, and given node 3, delete the node in place 1->2->4/** * Defini...

2018-05-20 11:43:09 217

原创 C语言总结_6.函数

函数1.函数命名要恰当,顺序要合理。例如编写字符串拷贝函数str_copy,它有两个参数,不要把把参数名字起为str1 和str2数的顺序要遵循程序员的习惯。一般地,应将目的参数放在前面,源参数放在后面2.不要省略返回值的类型,如果函数没有返回值,那么应声明为void 类型。如果没有返回值,编译器则默认为函数的返回值是int类型的。3.return 语句不可返回指向“栈内存”的“指针”,因为该内存...

2018-05-14 18:20:28 201

原创 C语言总结_5.内存管理

内存管理1. 野指针2. C语言内存分配(1)代码区(text segment)。代码区指令根据程序设计流程依次执行,对于顺序指令,则只会执行一次(每个进程),如果反复,则需要使用跳转指令,如果进行递归,则需要借助栈来实现。代码区的指令中包括操作码和要操作的对象(或对象地址引用)。如果是立即数(即具体的数值,如5),将直接包含在代码中;如果是局部数据,将在栈区分配空间,然后引用该数据地址;如果是...

2018-05-14 18:20:02 118

原创 C语言总结_4.指针和数组

指针和数组 指针就是指针,指针变量在 32 位系统下,永远占 4 个 byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。 数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但不能存函数。指针在 32 位系统下,不管什么样的指针类型,其大小都为 4byte。int *p = NULL;这句...

2018-05-14 18:18:56 233

原创 C语言总结_3.预处理

预处理define 宏定义 tips: 1.反斜杠作为接续符时,在本行其后面不能再有任何字符,空格都不行。 2.定义宏的时候一定要注意什么时候该用空格。 3.用 define 宏定义表达式不要吝啬括号,因为表达式是直接替换。 4.用宏开始或结束一段注释是不行的,因为注释先于预处理指令被处理。文件包含文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译...

2018-05-14 18:18:01 108

原创 C语言总结_2.符号

符号注释1.注释不可以嵌套,因为/总是与离它最近的/匹配。2.编译器预处理时会将注释剔除,用空格代替原来的注释。3.只要斜杠( /)和星号( *)之间没有空格,都会被当作注释的开始。4.注释的位置应与被描述的代码相邻,可以与语句在同一行,也可以在上行,但不可放在下方。接续符和转义符1.C 语言里以反斜杠( \)表示断行。编译器会将反斜杠剔除掉,跟在反斜杠后面的字符动接续到前一行。但是注意:反斜杠之...

2018-05-14 18:17:08 243

原创 面试中的算法

面试中的算法1.卡特兰数问题Catalan数的定义:令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2)递推式可表示为:h(n)=h(n-1)*(4*n-2)/(n+1);递推关系的解为:h(n)=C(2n,n)/(n+1) (n=0,1,2,…)应用:1.买票找...

2018-05-14 18:13:06 711

原创 C语言总结_1.关键字

C 语言易错点知识总结关键字变量声明与定义定义声明最重要的区别: <1 定义创建了对象并为这个计算对象所占内存空间大小对象分配了内存,声明没有分配内存。 <2 定义只能一次,声明可以多次。 <3 声明的2个作用: a.告诉编译器,这个名字已经匹配到一块内存上,下面的代码用到变量或对象是在别的地方定义的。 b.告诉编译器,我这个名字我先预定了,别的地方再也不...

2018-04-16 09:46:30 338

原创 linux_7.线程的相关知识

linux_7.线程线程的概念 线程就是进程内部的一条执行路径或执行序列,也可以称之为执行流。每一个进程至少 有一条线程,我们称其为主线程,或者称之为执行线程。从代码角度看,即就是 main 函数 的函数体。在主线程中通过系统调用函数创建其他线程(函数线程)。那么这几条线程会同 时向下运行。线程控制的难点在于多条线程的同步操作。线程实现的几种方式 内核级:线程的创建、控制、销毁都是由内核实...

2017-12-20 22:34:21 161

原创 linux_5.进程的相关知识

linux_5.进程的相关知识定义进程:一个正在运行的程序。相关函数创建子进程fork() (1)函数原型:pid_t fork() *pid_t是一个宏,其实质是一个整形,且是一个16位的整形(-32768-----32768),因此linux中可以创建的最大进程数为32768 (2)fork的复制过程 I:先申请一个pid(如果当前进程数已经达到了版本规定的上限,那么...

2017-12-19 22:39:59 290

原创 linux_6.进程间通信

linux_6.进程间通信基本概念 进程:运行着的程序 进程间通信 :管道、信号量、共享内存、消息队列、套接字(网络编程) 临界资源:同一时刻,只允许一个进程(线程)访问的资源。 临界区:访问临界资源的代码段。 原子操作:不可被分割(中断)的操作 管道 1. 分类: 有名管道 无名管道 2. 管道的实现方式:通过头指针写,尾指针读 头指针到尾指针为管道现有数据...

2017-12-13 19:17:51 150

原创 libevent库

libevent库简介libevent框架:高性能IO框架库,开源的,跨平台的,轻量级的网络IO库libevent实例应包含的功能:注册,注销以及事件循环  我们将文件描述符,读写事件以及回调函数注册到libevent实例中,当有事件发生时,IO复用函数负责通知该实例去管理调用注册的回调函数,而这些都是由这个框架完成的,我们不需要关心,只需要将所需要的信息注册到li

2017-12-11 22:59:20 243

原创 Linux_4. 静态库和共享库

Linux_4. 静态库和共享库库的定义 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows 和 linux 的本质不同,因此二者库的二进制是不兼容的。分类 Linux 操作系统支持的函数库分为静态库和动态库,动态库又称共享库。 Linux 系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。区别 A. 这类库的名字一般是 libxxx....

2017-12-07 15:36:50 175

原创 linux_3.makefile

linux_3.makefile功能   管理工程 实现自动化编译   功能带来的好处就是——“自动化编译”,一旦写好,只需要一个 make 命令,整个工程 完全自动编译,极大的提高了软件开发的效率。 make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如: Delphi 的 make, Visual C++的 nma...

2017-12-03 21:35:22 198

原创 https

https什么是 httpsHTTPS(全称: Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层, HTTPS 的安全基础是 SSL,因此加密的详细内容请看 SSL。见下图:https 所用的端口号是 443

2017-11-28 09:23:52 642

原创 断点续传和多线程下载

断点续传和多线程下载的实现原理 HTTP 协议的 GET 方法,支持只请求某个资源的某一部分; 206 Partial Content 部分内容响应; Range 请求的资源范围; Content-Range 响应的资源范围; 在连接断开重连时,客户端只请求该资源未下载的部分,而不是重新请求整个资源,来实现断点续传。分块请求资源实例:Eg1: Range: b

2017-11-27 23:09:54 731

原创 缓存实现

缓存的实现原理什么是 Web 缓存 WEB 缓存(cache)位于 Web 服务器和客户端之间。 缓存会根据请求保存输出内容的副本,例如 html 页面,图片,文件,当下一个请求来 到的时候:如果是相同的 URL,缓存直接使用副本响应访问请求,而不是向源服务器再次发 送请求。 HTTP 协议定义了相关的消息头来使 WEB 缓存尽可能好的工作。缓存的优点

2017-11-27 23:04:42 163

原创 http协议_Cookie 和 Session

Cookie 和 Session Cookie 和 Session 都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决 HTTP 无状态的问题而所做的努力。 Session 可以用 Cookie 来实现,也可以用 URL 回写的机制来实现。用 Cookie 来实现的Session 可以认为是对 Cookie 更高级的应用。两者比较Cookie 和

2017-11-27 22:46:59 151

原创 HTTP协议_状态码和请求方法

HTTP状态码和请求方法

2017-11-25 11:42:43 240

转载 OpenStack 基本组件

OpenStack 基本组件OpenStack 三大核心组件(网络,计算,存储)1.Horizon (UI模块) 控制台,又名Dashboardweb展示界面操作平台,方便用户交互的2.keystone(身份服务模块)1)用户身份认证(Idemity)user:用户(租户下有很多用户,验证方式用户名密码,API keys等)

2017-11-23 16:04:01 1650

原创 线程安全

线程安全 例子:主线程切割字符串“a b c d e f g h ”,子线程strtok():"1 2 3 4 5 6 7 8 9"strtok函数:char *strtok(char *str, const char *delim) Tips:strtok函数使用了静态变量 注:函数内部使用静态变量或者访问了全局变量,非线程安全的(不可重入函数) 解决:线程安全函数:cha

2017-11-13 22:32:54 134

空空如也

空空如也

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

TA关注的人

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