PHP笔试题面试题
1.你的技术栈有哪些
php、mysql、redis、Rabbitmq、Java、python.....
2.说说lnmp怎么配合服务的
3.nginx和Apache有什么区别
相比于nginx,apache有些臃肿,内存和CPU开销较大,性能上有损耗,nginx对于静态文件的响应能力远高apache。nginx使用资源更少,支持更多并发连接,效率更高,作为反向代理负载均衡服务器。(什么是反向代理?什么是正向代理?https://blog.csdn.net/sinat_38804294/article/details/94393621)nginx即可对内进行支持,也可对外进行服务。其还是一款非常优秀的邮件代理服务器,安装简单,配置简介。
https://blog.csdn.net/qq_41816540/article/details/81024849
4.lnmp接收一个请求有多少进程在工作
应该是4~5个,nginx的master主进程(转发给worker)、worker进程(提交到php-fpm)、php-fpm的master进程(转给worker)、php-fpm的worker进程(真正解析处理执行php)、数据库连接(可有可无)
https://blog.csdn.net/weixin_34199405/article/details/91751942
https://blog.csdn.net/sinat_38804294/article/details/94393621
5.为什么Nginx能承载更大的并发
见3
6.进程间通信有哪些方式
见7
7.管道是怎样的
https://www.jianshu.com/p/8e4f9978e5b8
8.进程、线程和协程
进程是系统资源分配的最小单位;
线程是系统能够进行运算调用的最小单位;
协程是基于线程的用户态调度,避免内核级别的上下文切换造成性能损失
9.php原生支持协程吗
支持,https://cloud.tencent.com/developer/article/1050153
10.swoole大致的框架是怎样的
11.io有哪些模型
异步阻塞和异步非阻塞有什么区别
io多路复用
https://cloud.tencent.com/developer/article/1584406
12.php弱语言类型怎么做到的
https://www.cnblogs.com/shixiuxian/p/8884926.html
13.php有指针吗
没有,但是&引用能达到指针的作用
14.php怎么实现多态
和Java一样,子类继承父类,子类重写父类的方法,父类指向子类,PHP弱语言类型,更加不需要声明类型
15.Rabbitmq消息分发类型
direct(默认)直接绑定,topic通过模式匹配分发队列,fanout发布/订阅
https://blog.csdn.net/panweiwei1994/article/details/79275485
16.redis有哪些数据类型
string、hash、list、set、zset
17.zset和set的区别
set,无序集合、元素为string类型、元素具有唯一性,不重复
zset,有序集合、元素为string类型、元素具有唯一性,不重复、每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序、元素的score可以相同
18.zset排序怎么实现的
通过跳表实现排序,通过字典实现快速查询
https://www.jianshu.com/p/35bce2ea5743 (zset底层实现)
https://blog.csdn.net/yanshuanche3765/article/details/82121043 (跳表排序的实现)
19、顺序查找、二分查找(时间计算)、冒泡查找
20、web安全问题有哪些
21、sql语句查找发帖最多的前十
22、常用的框架
23、常见索引、b+树是什么树
24、变量的声明和定义有什么区别
25、数组和链表的区别
26、队列和栈的区别
27、几大排序算法以及利弊
28、用c写一个死循环
29、设计模式以及应用场景
30、什么是多态
31、PHP的垃圾回收机制
32、查看系统负载的命令
33、存储引擎的理解,myisam和innodb(底层理解)
34、冒泡排序
35、PHP双向队列
36、500-505的出现,原因以及解决
37、高并发开发心得
38、二叉树
39、双向队列
40、top命令的一些常见参数
41、个人优缺点
42、觉得最有收获的项目
43、登陆流程的cookie安全问题、密码加密问题
44、数据库索引问题
45、如何定位一个慢sql语句问题
46、用户量急增,如何优化系统:cdn、缓存、分库分表、读写分离、合并请求、根据检测ip访问量
47、求2个有序数组的交集, 第一个数组长度 n, 第二个数组长度 m 1 3 5 7 9 1 3 4 5 6 答案是 1 3 5
48、有个框大小为 m, 有n个石头,每个石头体积为v, 求框最多能装到多大。 eg: 框大小 9 4个石头大小分别为 4 4 2 7 , 则框最大能装 8
49、分析服务器502的过程
50、dns解析过程
51、php zend_内存池
52、php7性能大幅增加的原因
53、php如何限制内存使用
54、cli模式如何传参
55、empty函数
56、in_array的时间复杂度
57、mysql能否使用上多个索引
58、mysql like和order by的优化