唯品会php面试题

学人智库 时间:2018-01-13 我要投稿
【meiwen.anslib.com - 学人智库】

1.const关键字作用是什么?Static关键字作用是什么?

2.先进先出、后进先出的典型数据结构分别是什么?用你熟悉的语言编写其中一个数据结构。

队列 栈

3.(任选一题)

(1)http协议状态码200、302、404、500分别代表什么?

200是最常见的http状态码,它的含义很简单,就是成功了。一个正常网页返回的状态码就是200.

302是临时性重定向到意思,就是一个网页临时被搬到了另一个网页上。

404是错误页面返回的状态码,表示页面不存在或被删除。

500表示服务器正在维护。

301是seo(网站优化)中最重要的http状态码,很多地方都会用到301重定向。这是一种永久性的重定性。

(2)tcp协议和udp协议的区别是什么?各举一个典型的应用场景。

TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)协议属于传输层协议。

TCP是美国国防部设计的两种传输协议之一,另一种是UDP。UDP是一种不可靠的网络服务,负载比较小,而TCP则是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)或者端口(port)来建立通信。TCP给端口到端口通信提供了错误和流量控制机制,同时TCP还负责建立连接、处理终止和中断的端对端通信控制。 通常情况下我们认为TCP相比UDP具有更大的通信负载,UDP不具备TCP的控制特性,TCP用了大约20个字节来发送一个65Kbps的数据块,这个报头占整个数据块的比重也不过3%。总得来看,这个负载是合理的,何况还令通信具有了可靠性。

(3)解释一下LRU算法。

概述LRU是Least Recently Used 近期最少使用算法。 内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU

4.(任选一题)

(1)用你熟悉的语言实现冒泡排序算法。

(2)有两个目录a、b的绝对路径(字符串),用你熟悉的语言实现一个算法,求出b相对于a的相对路径。

5.(任选一题)

(1)有一个整数数组,请用你熟悉的编程语言写一个算法将这个数组变成奇数在前偶数在后。并给出你的算法的空间复杂度和时间复杂度。

(2)现有n个小于100000的整数,写一个算法将这些数从小到大排序,要求时间复杂度O(n),空间复杂度O(1)。

(3)假设用户id为整数,现有10亿条用户购买商品的日志记录,每条记录大约100Byte,现在策划部要求对其中购买商品件数最多的100个用户进行奖励,给你一台内存2G的机器,如何花费尽量少的内存计算出这100个用户的id。

6.(任选一题)

(1)列举你所知道的设计模式(至少三个),并解释其中的两个。

(2)试解释并比较面型对象编程和面向过程编程。

7.仓库中有100颗金豆,拣货员在拣货的时候无意中把一颗外观一摸一样但重量不同的假豆掉了进去。仓库主管发现后给了他一架天平,并说如果他能通过最多两次称量得出假豆比真豆重还是轻,就不对他进行惩罚。你如果你是拣货员,你能让自己免于惩罚吗?

8.(附加题)

开发互联网应用与开发企业级应用有什么异同?开发电子商务网站和开发新闻类网站什么异同?思考一下,说说你的观点。

[唯品会php面试题]