摘要: select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说 阅读全文
posted @ 2016-10-16 11:13 SarahLiu77 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 这个简直是每次面试必问的一个知识点了,又三次握手四次挥手的过程能带出一大堆问题来,个个都能问得你猝不及防,什么第三次确认的必要性,什么time_wait的作用啦,什么主动关闭被动关闭啦,什么发送内容啦,等等等等。今天我们就来好好总结一下这整个的过程。 建立TCP需要三次握手才能建立,而断开连接则需要 阅读全文
posted @ 2016-10-13 12:34 SarahLiu77 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 这两个方法看起来都是讲一个资源附加到服务器端的请求,但其实是不一样的。一些狭窄的意见认为,POST方法用来创建资源,而PUT方法则用来更新资源。这个说法本身没有问题,但是并没有从根本上解释了二者的区别。事实上,它们最根本的区别就是:POST方法不是幂等的,而PUT方法则有幂等性。那这又衍生出一个问题 阅读全文
posted @ 2016-10-13 10:16 SarahLiu77 阅读(5462) 评论(0) 推荐(1) 编辑
摘要: 本文总结&分享网络编程中涉及的长连接、短连接概念。 关键字:Keep-Alive,并发连接数限制,TCP,HTTP 一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不 阅读全文
posted @ 2016-10-13 09:49 SarahLiu77 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 短连接与长连接 通俗来讲,浏览器和服务器每进行一次通信,就建立一次连接,任务结束就中断连接,即短连接。相反地,假如通信结束(如完成了某个HTML文件的信息获取)后保持连接则为长连接。在HTTP/1.0中,默认使用短连接。从HTTP/1.1起,默认使用长连接,这样做的优点是显而易见的,一个网页的加载可 阅读全文
posted @ 2016-10-13 09:36 SarahLiu77 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 这是面试中一道非常经典的问题。 当你在浏览器中输入一个网址,浏览器的处理过程如下: 下面对每个环节做进一步分析: 01 浏览器查找该域名的 IP 地址 浏览器缓存 首先是查找浏览器缓存,浏览器会缓存DNS记录一段时间,不同浏览器保存的时常不等(2分钟到30分钟不等)。 系统缓存 如果在浏览器缓存里没 阅读全文
posted @ 2016-10-12 23:23 SarahLiu77 阅读(15338) 评论(0) 推荐(3) 编辑
摘要: 为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言 阅读全文
posted @ 2016-10-12 23:20 SarahLiu77 阅读(1243) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。 二、实现思路 在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总是大于父结点的值 阅读全文
posted @ 2016-10-12 22:48 SarahLiu77 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 这个问题可以衍生出很多扩展性的问题: 给定一个单链表, 1.如何判断是否有环 2.如何知道环的长度 3.如何找到环的入口 4.整个链表的长度是多少 相应的解法如下: 问题1时后面所有问题的根问题,解决这个问题一般用到快慢指针,一个fast指针,一个slow指针,两个指针同时指向单链表的头结点,然后f 阅读全文
posted @ 2016-10-11 16:00 SarahLiu77 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 两个链表都没有环的情况下,判断是否相交大约有以下三种解法: (1)判断第一个链表的后半部分节点是否在第二个链表中; (2)把第二个链表连接到第一个链表后面,判断整个链表是否有环,有环即为相交。 (3)先遍历第一个链表,记住第一个链表的最后一个节点,然后遍历第二个链表,找到最后一个节点,与第一个链表的 阅读全文
posted @ 2016-10-11 15:31 SarahLiu77 阅读(391) 评论(0) 推荐(0) 编辑