笔试题之一

来源:互联网 发布:linux 22端口 编辑:程序博客网 时间:2024/05/21 17:28
(1)正数的补码是自身,负数的补码是原码的高位不变,数值位取反加1
那么-7是负数,原码:1000 0111,反码:1111 1000,补码:1111 1001

(2)进程有3个状态:就绪态。执行态、阻塞态。三种状态的转换包含有:

就绪->执行,执行->就绪,执行->阻塞,阻塞->就绪

等待I/O、进程sleep、等待解锁等原因都会导致进程暂停。关于"时间片切换",当进程已经获得了除cpu外所有的资源,这时的状态就是就绪态,当分配到了时间片就成了执行态,当时间片用完之前一直未进入阻塞态的话,此后便继续进入就绪态。所以进程的就绪与阻塞是完全不同的。


(3)设只含根节点的二叉树高度为1,现有一颗高度为h(h>1)的二叉树上只有出度为0和出度为2的结点,则此二叉树中所包含的结点数至少为________个             2h-1


(4)

Dijkstra算法用于求解图中两点间最短路径,其时间复杂度O(n^2)
Floyd-Warshall算法用于求解图中所有点对之间最短路径,其时间复杂度为O(n^3)
找出n个数字的中位数至少需要O(n*logn)的时间
基于比较的排序问题的时间复杂度下界是O(n*logn)

AB正确,考察基本算法。D正确,基于比较的话,怎么样都至少需要O(n*logn)的时间。找一个数是否是中位数,可以利用快排的过程(而不是快排),就和O(N)第K数一样。


(5)当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系列活动,请尽可能的涉及到所有的关键技术点。
1 查缓存
2 DNS解析
3 获取ip
4 建立tcp连接
5 发http数据
6 接受http数据并解析
7 close

http协议,tcp协议,UDP协议,session cookie会话,一个请求发出,建立了一个session 会话,创建session id ,携带着数据 传到服务器端,中间会有过滤器,拦截器对信息过滤,然后最终发送到服务器端,最后访问数据库,然后由服务器端携带着响应,通过拦截器,过滤器,返回到客户端。将cookie信息存入硬盘
当你在浏览器输入一个网址,如http://www.dy1280.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系列活动,请尽可能的涉及到所有的关键技术点。

几乎每年校园招聘,都会有面试官问这个问题。

一、URL自动解析 HTTP

URL自动解析 HTTP,URL包含了用于查找某个资源的足够信息,基本格式如下:HTTP://host[“:”port][abs_path],其中HTTP表示桶盖HTTP协议来定位网络资源;host表示合法的主机域名或IP地址,port指定一个端口号,缺省80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。例如:输入www.dy1280.com;浏览器会自动转换成:http://www.dy1280.com/

二、浏览器查找域名的IP地址

获取IP,建立TCP连接 浏览器地址栏中输入”HTTP://www.xxx.com/”并提交之后,首先它会在DNS本地缓存表中查找,如果有则直接告诉IP地址。如果没有则要求网关DNS进行查找,如此下去,找到对应的IP后,则返回会给浏览器。

三、浏览器给web服务器发送一个HTTP请求 

当获取IP之后,就开始与所请求的Tcp建立三次握手连接,连接建立后,就向服务器发出HTTP请求。
浏览器会把以下请求发送到taobao所在的服务器:
  1. GET http://taobao.com/   HTTP/1.1
  2. Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]
  3. User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]
  4. Accept-Encoding: gzip, deflate
  5. Connection: Keep-Alive
  6. Host: facebook.com
  7. Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]
复制代码

GET这个请求定义了要读取的URL,浏览器自定义(User-Agent头)和它希望接受什么类型的相应(Accept and Accept-Encoding头)Connection头要求服务器为了后边的请求不要关闭TCP连接。
请求中也包含浏览器存储的该域名的cookies,在不同页面请求当中,cookie是与跟踪一个网站状态相匹配的键值。这样cookies会存储登录用户名,服务器分配的密码和一些用户设置等。Cookies会以文本文档形式存储在客户机里,每次请求时发送给服务器。


四、Web服务器应答,并向浏览器发送数据

客户机向服务器发出请求后,服务器会客户机回送应答,HTTP/1.1 200 OK应答的第一部分是协议的版本号和应答状态码,正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

五、Web服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码Connection:keep-aliveTCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。


0 0