瑛太莱PHP岗面试

it2023-12-15  67

一面:

    介绍项目,就简单介绍了一下,但是有个东西是从别的平台拿来的,目前能力无法开发(就一直盯着这个问我.....确实没法实现,就相当于我项目中使用了QQ这个软件,问我QQ的底层原理一样)

-----------------------------------------------PHP-----------------------------------------------------------------------------------------

   都学习过什么语言,我说PHP和C++【劝你就算知道C/C++,也别说.....不然请解决以下问题】

   PHP底层是 C 写的。

   那么让你用C++实现一下PHP中的数组,你会怎么实现?      由于PHP数组可以左边删除,左边插入,右边删除,右边插入,那么应该是个双向队列

  那么让你用C++实现一下PHP中的key-value结构,你怎么实现?    ........

 PHP是否需要编译? 我说需要交给zend引擎编译,翻译成opcode,然后执行。(其实脚本之类的并不需要编译)

PHP底层运行原理                       底层运行原理         另一个博客

 了解PHP垃圾回收机制吗?       垃圾回收

 PHP的循环引用                         循环引用问题

PHP是单进程还是多进程?      单进程还是多进程

php-fpm的优化                          php-fpm如何进行的优化?

PHP的魔术方法都有哪些?        魔术方法

 

 -------------------------------------------------------------C/C++--------------------------------------------------------------------

如何看待C语言中的指针?

    指针是C语言的灵魂,它可以提供 快速查询, 是一个地址变量

C++是如何实现map的?

    红黑树

计算机中存储海量数据的数据结构有哪些?     (1)链表(零散的内存空间)     (2) 数组(连续的内存空间)访问速度O(1)     (3) 队列     (4)树 : 时间复杂度 O(log(n))

 

--------------------------------------------------------------------Redis-------------------------------------------------------------------------------------------

Redis的数据类型和他们的底层数据结构 (问我的是有序集合的底层数据结构)  Redis五种数据类型及其底层数据结构     

了解跳跃表吗?     了解

Redis的优点          这里

Redis优化             优化方法   

Redis的持久化...........AOF的缺点,如何重写AOF      

 

知道hash冲突吗?

  hash特点:        相同输入,相同输出        不同输入,有可能相同的输出 (也就是hash冲突)

如何设计key-value结构?

    想要在接近 O(1) 的时间复杂度内获取到指定的value,那么最快的一定是数组     但是数组要求下标必须为正整数,那么如何将一个字符串类型的key转换成正整数呢?         答案是hash         通过hash函数hash(key) 之后得到 hashCode         但hashCode有时候会过大,如果要分配那么大的内存,会造成严重的浪费         所以需要对hashCode进行取模运算 , 一般是对数组长度data.length-1这个范围取模,这样所有的数值都会在 0 - data.length-1这个范围         redis 通过链表法解决hash冲突

如何解决hash冲突?          哈希冲突和解决办法

    1.开放定址法(线性探测再散列,二次探测再散列,伪随机探测再散列)

一旦发生冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。

  2.链地址法 (拉链法)

将所有哈希地址相同的元素都链接到同一个链表中。

   3.再hash法(对出现冲突的值再次hash,直到不出现冲突)

  4.建立一个公共溢出区

------------------------------------------------------------MySQL------------------------------------------------------------------------------------

MySQL的存储引擎

            存储引擎也就是       不同的数据文件在物理磁盘上的不同组织形式

MySQL的索引          索引问题

B+树的链表上 key 存储的是地址还是数据      在非叶子节点存储key的地址,在叶子节点存储key和值

如果索引发生变化会有什么结果             重构整个数据表

 

-------------------------------------------------------------操作系统------------------------------------------------------------------------------

如何理解线程,进程,协程,用户态和内核态

         线程,进程,协程                   用户态和内核态

手撕代码:

   给一个数组nums,一个目标值 target  ,求三个数相加的和最接近target的值。

  -10^4     <=  target      <= 10^4

   3      <= nums.length <= 10 ^3

  -10^4 <=   nums[i]     <= 10^4

我使用了最暴力的三层for循环

最新回复(0)