大部分面试题来自网络,由于多重转载,已不知原始出处,链接就不一一列出。欢迎大家在 issue
页面留言讨论问题。
问题来源:
http://tieba.baidu.com/p/3612369052
http://blog.csdn.net/hyr352114576/article/details/49638345
https://my.oschina.net/u/574366/blog/64814
没有固定/参考答案,结合问题和自身实际予以表述即可。
点评:
A、此问题考察你的描述同简历的相符之处;
B、从描述中,发现可以追问的点,追问细节,你是不是真参与了,参与了多少;
C、从项目的周期、职责、复杂程序对你的能力进行定位和评估。
点评:
同上。
参考答案:https://www.zhihu.com/question/20017917
点评:
A、此问答也比较泛,考察的是对解决一个问题的分析思路;
B、从哪些方面,哪些层面对问题进行考察;
C、对于想到的方面和层面,再细致挖掘考虑是否严谨;
D、用户信息存储考察面试者对用户信息业务本身的了解、存储方式及其特点的了解。
点评:
A、考察带队能力;
B、注意不是所有的问题都有非常肯定和完美的答案,思考和解决问题的方式,比回答问题本身更为重要。
参考提示点:带宽、DNS、CDN、gzip、负载均衡以及数据库等。
参考答案:http://www.cnblogs.com/niniwzw/archive/2008/06/03/1212535.html
foreach
的效率要比 for
高很多,也许有很大的一个原因是 for
要进行很多次条件判断。所以以后能用 foreach
的地方就用 foreach
,可以提高1倍的效率。
如果循环内要调用函数,用 array_walk
最好,它的效率要比 for
高出1倍,要比 foreach
高出43%的效率。
参考答案:http://jingyan.baidu.com/article/e9fb46e1a3eb277521f76619.html
PECL (PHP Extension Community Library)
可以看作 PEAR (PHP Extension and Application Repository)
的一个组成部分,提供了与 PEAR
类似的功能。不同的是 PEAR
的所有扩展都是用纯粹的 PHP
代码编写的,用户在下载到 PEAR
扩展以后可以直接使用将扩展的代码包含到自己的 PHP
文件中使用。而 PECL
是使用 C
语言开发的,通常用于补充一些用 PHP
难以完成的底层功能,往往需要重新编译或者在配置文件中设置后才能在用户自己的代码中使用。
最直接的表述:PEAR
是 PHP
的上层扩展,PECL
是 PHP
的底层扩展。它们都是为特定的应用提供现成的函数或者类。
参考答案:http://www.toutiao.com/a6294758409293086977/
大致上有三种方式可以处理:
- 数据库/文件同步
session
cookie
同步session
- 缓存 (如
memcache
)同步session
推荐使用最后缓存同步方案。
跨站脚本( XSS
)是一种计算机安全漏洞,是代码注入的一种,通常出现在web应用程序上。它允许恶意用户将代码注入到网页上,其他用户观看网页时就会收到影响。这种攻击通常包含了html以及客户端脚本语言。 SQL
注入是发生于应用程序数据库层的安全漏洞。是在输入的字符中注入 SQL
指令,在设计不良的程序中忽略了检查,那么这些注入的指令会被数据库误认为是正常的 SQL
指令而运行,因此遭到破坏。
- 确认服务器硬件是否足够支持当前的流量。
- 使用
memcache
缓存技术,将动态数据缓存到文件中,动态网页直接调用这些文件,而不必在访问数据库。 - 禁止外部的盗链。外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对自身图片或者文件盗链,可以通过apache的URL重定向来防止盗链。
- 控制大文件的下载。大文件的下载会占用很大的流量,对于非SCSI硬盘来说会消耗,使得网站响应能力下降。
- 使用不同的主机分流主要流量。
- 使用流量统计软件。在网站上安装一个流量统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化。
参考答案:http://www.cnblogs.com/zk0533/p/5667122.html
php
的内存管理机制是:预先给出一块空间,用来存储变量,当空间不够时,再申请一块新的空间。
- 存储变量名,存在符号表。
- 变量值存储在内存空间。
- 在删除变量的时候,会将变量值存储的空间释放,而变量名所在的符号表不会减小。
php
垃圾回收机制是:
-
在5.2版本或之前版本,PHP会根据 引用计数 (
refcount
)值来判断是不是垃圾,如果refcount值为0,PHP会当做垃圾释放掉,这种回收机制有缺陷,对于环状引用的变量无法回收。 -
在5.3之后版本改进了垃圾回收机制。具体如下:
如果发现一个 zval
容器中的 refcount
在增加,说明不是垃圾;
如果发现一个 zval
容器中的 refcount
在减少,如果减到了0,直接当做垃圾回收;
如果发现一个 zval
容器中的 refcount
在减少,并没有减到0,PHP
会把该值放到缓冲区,当做有可能是垃圾的怀疑对象;
当缓冲区达到了临界值,PHP
会自动调用一个方法去遍历每一个值,如果发现是垃圾就清理。
参考答案:https://my.oschina.net/candiesyangyang/blog/203425
参考答案:http://www.cnblogs.com/kaituorensheng/p/3603057.html
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。在 Windows
下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
参考答案:http://blog.csdn.net/jenminzhang/article/details/47017741
TCP/IP
5层 指的是:
应用层
HTTP、FTP、SMTP、DNS、DSP、Telnet、Gopher、WAIS……
传输层
TCP、UDP、DVP……
网络层
IP、ICMP、AKP、RARP、UUCP……
接口层
Ethernet、Arpanet、PDN……
物理层
只要能传输IP数据报(Datagram),允许任何协议……
OSI
7层指的是:
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据格式化,代码转换,数据加密 没有协议
会话层 解除或建立与别的接点的联系 没有协议
传输层 提供端对端的接口 TCP,UDP
网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2