当前位置: 首页 > 后端技术 > PHP

【推荐收藏】PHP面试题精选几家互联网公司

时间:2023-03-29 13:56:35 PHP

1、同城邦之前隶属于360公司,是360的分公司。现在逐渐独立了。是一家创业型公司,主要是O2O方面,面试内容如下:1.说说项目(他比较感兴趣的是360老兵的项目,其他项目没看过),询问项目的具体内容,遇到的挑战,具体解决方案,缓存的使用,为什么要用redis,为什么要用独立的文件服务器。2.缓存,问了memcache和redis的区别,redis的优点。如何解决memcache命中率低的问题,询问了实际项目中memcache的命中率。redis服务器是否已经部署。3、svn和git的区别,说说具体的工作流程,使用git的好处,以及如何处理冲突。写了两个基本命令。4、数据库(1)数据库的存储引擎,myisam和innodb的区别,以及除这两者之外的其他存储引擎。(2)int和bigint的区别,实际使用中选择哪个作为主键?int(10)和int(11)的区别,var_char和char的区别(3)数据库设计,user表和login表分离的好处,5,php部分(1)session和char的区别cookie(2)如何分配解决session共享问题(可以从数据库、ccookie存储session、nosql解决)(3)get和post的区别(4)php的__autoload机制6、计算机网络(1)三次握手,四次挥手的过程(主要是画图),各参数的含义(二)http和https的区别,如何保证https的安全(结合ssl)7、数据结构(一)链表的结构(线性和链式),插入一个元素的操作代码(纸上写)(2)排序部分,时间复杂度,写一个排序算法。(3)二分查找的思想,时间复杂度8,开发环境,linux的常用命令,apache和ngiax的区别,平时的开发环境是win还是linux等等面试心得:技术面试是关于50分钟,挺累的,,,,还有个问题就是住宿,交通,毕业,实习时间,到达时间等等,hr人不错,面试整体不难,都是常用的事情,算法应该很容易编写。2.新浪微博,一家互联网公司,以服务大中华地区和海外华人为己任。2012年11月,新浪注册用户突破4亿。面试内容是一套卷子,约6张(单面),试题大致如下:1.为什么要加入新浪,你对新浪的印象2.未来的计划,目标,计划?3、你有微博吗,昵称是什么,有多少粉丝?4、填空:(主要写结果)(1)判断null的函数(2)判断变量是否存在的函数(3)判断是否为空的函数5、PHP将json转为数字:组函数6.PHP获取前一天日期,格式如下(2015-08-2410:20)然后写入文件/usr/test7.提取url,需要从中提取url部分《sina》(需要两种方法)8.连续子数组的最大和,例如输入数组为{1,-2,3,10,-4,7,2,5}和最大子数组{3,10,-4,7,2}sum为189。写下常用的linux命令函数:top,ps,mv,find,df,cat,chmod,chgrp,grep,wc10,写查看80端口的命令在linux11,有一个ip日志文件,每行一个ip,统计某个ip出现的次数12.数据库设计,有发布文章的数据字段:文章id,文章标题,publisher,分类id,子分类id,locationid,creationtime,status问题:(1)画数据库设计图(表之间的关系),表可以自己加,说明这样设计的目的,好处(2)写创建文章表的语句,说说依据用于选择字段。(3)写出sql语句,找到最近10篇文章,说说优化方法。13、系统设计场景:现在我们要搭建一个用户日程提醒系统。要求如下。它可以记录用户每天的日程安排。当代理时间表到达时,将以短信或电子邮件的形式通知用户。用户可以查看历史时间表并管理自己的时间表。日程(增删改查),用户有好友,可以查看好友发布的日程,可以和好友聊天。要求:1:考虑并发。2:用户数千万级,调度数1亿级,10亿级别3:保证安全,首页流畅4:使用缓存服务器问题:(1)你认为是什么本系统的难点(2)本系统各模块之间的关系,(3)本系统实现的具体细节(缓存,大数据)(4)如何保证系统的安全性(技术方面):1.主要是本系统的数据表设计2、本系统在用户较多时可能响应较慢。如何解决问题?答:使用缓存解决频繁的数据库查询、用户关系和好友历史行程。我的历史时间表可以缓存。他问友谊是什么时候发生的。怎么处理变化,一开始我说清缓存,下次查询直接查数据库,他说这样不好,数据库压力瞬间变大,我再想一想,我说说清除缓存Cache后可以恢复数据库,他说,不是最好的解决办法。最后他说可以先更新数据库,然后根据更新的友情更新缓存(少查一次数据库,其实很简单)。3、本系统首页加载慢怎么办?一开始我说页面应该是静态的。他说首页是动态加载的,静态页面没有效果,反而会拖慢系统。文件IO需要消耗性能。让我想想还能做什么。我说的是缓存首页数据,但是要注意缓存的更新时间。4.登录问题。系统登录速度慢。你知道为什么以及如何解决它吗?我觉得应该是用户量太大,登录的sql语句没有优化,或者没有索引。他说加个索引,SQL优化到最好,但是有什么问题呢?我说是用户数太大,超过了mysql单表的容量。他问如何解决。我说可以水平拆分,缓解数据增长的压力。他说什么是数据库拆分?水平拆分和垂直拆分有什么区别?我说垂直拆分解决的是表之间的IO竞争,不是单表。中间数据量增长的压力,把不相关的表放在其他服务器上,水平拆分解决单表数据量增长的压力,不解决表间的IO争用,我觉得我不是太懂,他说怎么按什么拆分(我只知道拆分)我说可以按时间拆分,他说这种拆分没用,他说再想一想,我说我觉得还可以,拆分之后单表数据变小了,查询一定要快。他说你登录的时候怎么判断用户在哪个表?我说用户和分表的关系在hash中hash到一个表中。他说不是最好的方案,hash很麻烦。您需要确定要搜索的表。..他让我再考虑一下。从存储过程和数据库缓存的角度,他最后说不好用。他说可以把用户名分表,用户名(a-z)分26个表。当你登录时,你可以找到他戴的手表。这个问题讨论了大概30分钟,回答得不是很好。5.第三方登录问题。他问我有没有做过第三方登录。我说我自己试过,用QQ做第三方登录,主要是调用腾讯提供的接口。他问我第三方登录的原理。认证方面,原理方面,我们来说说https安全传输的原理。6.Interface他问我有没有做接口。我说我做到了。他问接口是怎么判断用户登录的。我说是生成token。他问token的生成原理,token的安全性怎么解决,token被劫持了怎么办,有没有什么好的办法。我不知道如何处理被劫持的令牌。我可以检查这个。反正当时也没想到什么好办法。我从代币生成规则、过期时间、添加代币等方面进行了回答。他说没关系。两面:(技术、项目面试)1.问我为什么要加入新浪微博2.说说项目的情况。他问了360一位抗战老兵。他访问了这个网站,询问了系统测试、开发细节和缓存等问题。挡题,我问的是mc和redis的区别,内存管理的区别3.访问我的个人网站,说可以下载网站的结构和部署4.问我想做什么工作寻找。我说我要找网站后台。或者app界面开发的工作5.问我有没有学到新东西,想学什么新东西。我说可以看看nodjs,想关注下php7。总结:技术面60分钟左右,主要是数据库,感觉自己回答的不是很好,第二面也是技术面,主要是项目(360老手,大家比较敏感thisproject),采访一直持续到12:30左右。总体感觉还不错,题目都是关于数据库优化,分表,大数据处理方法等等。最后让我等第二天的结果吧。第二天HR打来电话说面试通过了,说实习的事。周一上班,周二办手续。爱美的女性用户提供最流行的时尚购物体验,女性注册量超过1亿。面试内容是一套试卷。试题如下:1、mysql索引是一种什么样的数据结构,为什么要使用这种数据结构。2.设计一个数据表来存储url信息。插入和删除操作经常发生在这个表中。应用场景是查找某个url是否存在。请写出表结构并说明。3.比较单词a和b,判断单词b的字母是否在a中。4、编写一个定时器类,用于统计应用程序的运行时间,并编写调用方法。5、session和cookie的区别,表示禁用cookie后session是否还能运行。6、新浪微博一年产生的数据量是多少,这些数据应该如何存储。7、状态:204、304、404的含义,可以参考(http://tool.oschina.net/commo...)8、介绍一下你知道的开源项目(技术面):1、介绍php魔术方法2.索引的最左原则3.数据库sql优化,哪些sql语句执行会忽略索引。4.策略题:4人过桥。A用1分钟,b用2分钟,c用5分钟,d用10分钟。两个人同时过桥。走完桥,把手电筒一个人送回去,问最快过桥需要多长时间。两面(技术方面,问题):1.说说项目,360老手。2.浏览器输入url显示页面,流程通过,3.mc和redis的区别,内存管理。三面(hr面):hr是个漂亮妹子,聊的很开心,主要是工作计划,生活住宿,大学学习经历,知不知道美丽说这家公司等等。最后放回去等通知。总结:美里说公司挺大的,但是一方面感觉在数据库上还是有点吃力,主要是数据库底层的讨论不是很好。关于攻略类型,如果没见过,基本上是打不出来的,但也不能说不知道。你应该给出你自己的意见,即使它不完全正确。最后还是回去等通知。他们说今天还有一个hr没来。如果我觉得还可以的话,26号会打电话给我过来复试。..最后他真的打电话给我,让我去复试,是27号。4.360金融笔试题:1.记下PHP中array_开头的函数,并说明用法,至少6个。2.mysql常用的存储引擎,说出3个以上,记下每个应用场景,优缺点3.redis和MC的区别,写其中一种内存管理机制4.查看Apache80端口的命令5.用C语言实现php中的base64编码功能6.用PHP写quicksort面试题:1.微博reids的应用场景,redis的内存分配机制,为什么redis的使用不适合MC,mc和redis哪个并发度更高2.array_map,array_merge的使用场景(),合并数组后键名发生变化3.php的几个编码函数(json_encode,http_build_query,urlencode等)的区别4.的含义。*+/inregularexpressions5.给定一个数字,将二进制转为十六进制问题:1.打印前一天的日期和时间格式:2016.03.1810:15:12,打印前一天的最后一天的日期月2.说出empty()和isset()的区别array_key_exits();3.浏览浏览器地址栏输入www.baidu.com后会发生什么,以及使用的协议4.从连接中提取url5(),以及将请求的URL发送给PHP方法,有什么区别6.写10个mysql字段类型,说明使用场景7.一张数据表,70个字段,10G数据量,每天50w数据增量,说说什么优化方法81.写一个定时任务,每天2:00到8:00每隔10分钟调用PHP脚本/data/www/test.php9.写一个linux命令查看php-fpm进程数10.写一个判断是否重牌的函数从一副扑克牌中随机抽出的5张牌是顺子吗?a顺子的定义:5张牌为连续牌,如23456,其中2-10为原数,A为1,J为11,Q为12,k为13,小王大王为任意数。6.瓜子二手车方(技术面):1.介绍一个写好的项目,画出架构和技术要点2.编码杨辉三角形,求m行n列的值3.用正则表达式判断ip的合法性4.redis和MC的内存管理机制5.redis中的数据存储方式以及各种数据结构的应用场景。redis消息队列和专业消息队列有什么区别和优势6.最左原则和sql优化机制,什么时候不会用到索引。7、条件查询和系统设计架构的优化8、最近学习的新技术,对架构师的理解,对GO语言的理解快吗?你要去哪里?两个方面(技术方面):1.一个sql语句的优化机制,大数据分页处理2.矩阵的正则遍历,写遍历代码3.你老板和你的关系,如何保证协调工作、生活等4、抓取a.html页面,抓取a注释中包含的所有href,如果url中包含guazi.com,则在url的标题中加上guazi,然后抓取对应的页面link,这样才能继续服从Crawling,怎么解决死循环和页面爬取效率的问题。7.百度的一面递(技术面):1.说说项目,介绍知识点,画结构图2.数据库最左原理的含义和用法4.一个数组按a排序固定值(按id排序)$a=[['abc']=>['id'=>1,'value'=>233],['bcd']=>['id'=>2,'value'=>463]]两个方面(技术方面):1.说说项目2.数据库最左原理3.数据库索引建立原理4.数据库引擎,说说特点5.Redis的优点和MC和MC的缺点,在什么场景下使用6.打印日志文件中,出现频率最高的前100个IP9.C语言中结构体和联合体的区别,各自占用内存少(两者都被given)10.有没有自己写的作品,或者开源的东西?11、系统设计:百度外卖活动如何设计秒杀,需要注意什么三个方面(技术方面):1、介绍自己正在做的项目,画出自己做的一个模块的流程和要点发展2.有没有学习新的东西,比如新技术、语言3.,你看过GO语言,它的优点是什么,适合用在什么地方?4、为什么选择百度外卖?,告诉技术点2,编码:一个数组0-n-1,已经排序,打印出所有满足a[i]+a[j]=c的i和j,告诉时间复杂度3,后面是什么你的计划、学习目标或你自己的计划目标?4.收到了哪些offer?为什么不选择这些公司?(技术方面):1.写一个类,一个单例类,输入两个数组,$arr1,$arr2,每个数组包含整数(0-9),这个类提供了两种方法,一种是对$arr1进行排序,一种是对把两个数组当成两个大数然后相减,返回结果(如果第一个数组是[5,2,3,4],就相当于这个数:5234)2.说明要做的项目,讲述知识点和自己的贡献。3、join中数据库中两个笛卡尔积的体现,以及leftjoin的中间过程4、最左原则的含义、数据库索引的使用和优化5、网站打开慢的原因及解决方案技术方面):1.说明项目的结构,项目中redis的使用2.为什么不留在原来的平台上3.数据库事务的原理,有没有用过三个方面(技术方面):1.数据库优化,索引建立原则2、数据库事务的含义3、redis和MC的区别,redis支持的数据结构有哪些(技术方面):1、你为什么来小米网,你对我们了解多少?2.求两个数组的交集和差集。3.获取两个表的交集和差集。哪个将使用索引以及如何检查它。5、如何打开PHP短标签。结束标签有什么影响?6、session和cookie的区别与connection不同。如何保证集群下session的同步?7.对架构师的理解,你认为架构师是如何实现的?php各个框架的应用、php的安全性10、数据库的优化、大数据量的数据库如何保证正常访问11、数据库集群的特点和数据同步的机制12、什么是响应式设计的注意点,各位小伙伴们不要迷路了,以上就是本文的全部内容。能看到这一点的人,都是人才。前面说了PHP的技术点很多,也是因为太多了,写的太多了,写完了也不会看太多,所以我这里整理成了PDF和文档,有需要的可以点击进入秘籍:PHP+「平台」更多学习内容可以访问【比大厂】优质PHP架构师教程目录,只要会看,薪资高会更上一层楼(持续更新)。以上内容希望对大家有所帮助,很多PHPer在进阶的时候总会遇到一些问题和瓶颈。业务代码写多了就没有方向感。架构、高扩展、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等进阶知识点级别的干货,可以免费分享给大家,需要的话可以加入我的PHP技术交流群