PHP面试题(二)---百度

百度一面
1.自我介绍 
2.问我研究生期间主要课程 
3.
数据库优化 
4.
MySQL组合索引特点 
5.
PHP中垃圾回收 
6.是否看过
php源码,做过php扩展,并阐述一下 
7.
mysqlMongoDB区别 
百度二面 
1.自我介绍 
2.Mysql中索引类型,B-tree、Hash索引怎么实现的以及其特点? 
3.Mysql中什么时候会出现数据丢失?怎样预防数据丢失 
4.php虚拟机怎样解析php代码的 
5.Mysql的优化步骤? 
6.Mysql中的锁? 
7.Mysql中的索引作用?如果不考虑其物理空间,索引是不是越多越好? 
8.Mysql中主从复制原理与搭建 
9.Mysql集群 
10.是否阅读过Mysql源码? 
11.反射作用以及应用场合?为什么非得用反射? 
12.是否用到过socket编程,socket与curl区别? 
13.php中图像处理 
14.php中垃圾回收 
15.php为什么是弱类型 
16.研究生期间的课程有哪些? 
17.Apache与Nginx区别? 
18.web安全有哪些? 
19.描述从输入url到显示,中间发生了什么?主要阐述apache或者Nginx中发生了什么? 
20.Hash结构 

函数参数传递机制的基本理论
函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。
  值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
  引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的
实参变量。


-----------------------------------------------------------------------------------

仅讨论一下值传递和引用:
所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。

6、操作系统死锁的理解。

7、快速排序。

8、链表逆序,要求给出多种解题方案。

9、二叉树从根节点到叶节点路径上数字之和为一特定数的问题,会问到具体实现的数据结构(stack),算法优化。

10、是否熟悉前端相关技术HTMLCSSBooTStrapJSjQueryAjax等)。

11linux 部分shell指令:如何查看某一个端口是否被占用,用过那些linux系统(ubuntucentos等),是否了解linux内核。

12CookieSession的理解。

13PHP语言对字符串逆序的函数是什么,文件操作的函数名是什么,PHP使用了多长时间。

HTTP POST GET的 区别。

在这特别感谢之前牛客网分享百度面经的前辈们,相关知识点基本都能靠上,不过面试官喜欢深入去问,准备的时候还是得明白其中的原理。

第二天来了电话二面,被虐成了渣:

1C指针的大小,是否是固定的。

2PHP JSON函数是否了解,PHP 运算符 “===” 和 “==”的区别,PHP引用(传值和传址)的理解。

3js的闭包概念,ajax回调函数。

4、算法题:如何判断有环链表,有环链表如何判断开始的节点,有没有更高效的方法?

5、数据库连接查询有那几种?详细描述一下。

6、数据库慢查询优化,索引技术,存储引擎,不同引擎之间的区别

7TCP的三次握手和四次挥手。

8、数据库表user只有id,name两个字段,编程实现删除重复数据,确保相同name的用户只有一条数据

猜你喜欢

转载自blog.csdn.net/weixin_42075590/article/details/80631581