• 百度电面总结


    百度电话面试

    1 自我介绍

    2 php的数组函数有哪些?

       好多,大家自行看书。

    3 自动加载类的方法?

       __autoload()

       方法如下: function __autoload($class_name){

       require($class_name.".php");
       }
       类名和文件名之间具有一种统一的对应关系。
       注意修改php.ini中的include_path中的路径。

       spl_autoload($class_name,$file_extension)

       优先使用autoload_func是否为空,如果为空则运行__autoload()如果没有则报错.

    4 php-fpm是什么?

       php-fpm是一个php的fastcgi管理器,Nginx使用这些php-fpm进程来和php通信。php的解释器。

    5 nginx如何解析PHP脚本?

       1.nginx启动时,载入php-fpm(php的fastcgi管理器)。
       2.php-fpm自身初始化,启动多个cgi解释器进程。
       3.client请求到server后,php-fpm选择并连接一个cgi解释器,webserver将cgi环境变量和标准输入发送到php-fpm中的子进程php-cgi中,调用对应的PHP脚本进行处理。
       4.子进程完成处理,将输出信息和错误信息从同一连接返回webserver,当子进程关闭,请求完成。

    6 tcp三次握手

       1.client向server发送一个SYN=1,seq=x随机选择初始序列号的tcp请求.
       2.server收到这个请求后,缓存这个tcp请求和变量。然后向client发送SYN=1,ACK=1,seq=y的回应请求。
       3.client收到server的同意建立连接的请求后,给服务器发送ACK=1,seq=x+1的请求报文。连接成功建立。
       备注: 1.在前两次握手中报文不携带数据,第三次握手可以携带数据。
                2.由于第二次握手时,server会缓存tcp请求和变量所以会遇到DoS(拒绝服务攻击)即只是给server发送大量的一次握手报文造成server大量缓存,导致资源耗尽。

    7 线程安全

        多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。

    8 C语言内存管理

       内存空间主要由五个部分组成代码段、数据段、BSS段,堆和栈组成.其中代码段,数据段和BSS段是编译的时候由编译器分配,堆和栈是运行时由程序分配。

       代码段:存放程序执行代码的内存区域,通常为只读。
       数据段:存放初始化的全局变量和静态变量的内存区域,属于静态内存分配。可以分为只读数据段和读写数据段,字符串常量等存放在只读数据段。
       BSS段 :用来存放未初始化的全局变量和静态变量,属于静态内存分配。BSS节不存放数据只是简单的维护程序开始和结束的地址。
       堆:是动态分配的内存段,malloc函数开辟新内存(加入堆中),free函数释放。 特点:灵活方便,数据适应面广泛。缺点:效率有一定降低。
       栈:存放临时创建的局部变量的(函数中定义的,不包括static),在函数调用的时候参数和返回值都会存在栈中。 特点:速度快高效。缺点:大小有限制不灵活。

    9 strcpy和mecpy区别?

       原型:char* strcpy(char* dest, const char* src);
       strcpy只用于字符串复制,并且它在复制字符串内容之外,还会复制字符串的结束符。

       原型:void *memcpy( void *dest, const void *src, size_t count);
       memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制

    10 C语言全局变量和局部变量的存储位置?

       全局变量存储在数据段或者BSS段,局部变量存储在栈中。

    11 判断链表相交

       判断两个链表的最后一个节点是否一致。

    12 相交链表的第一个结点

       长的链表先走(长-短的距离),然后两个链表一起走,每走一次比较一次第一个相同的点即是。

    13 将字符串中空格替换为20%

       统计字符串中空格的个数,然后计算替换后的长度。从字符串的最后一个开始遍历遇到空格则将20%写入,否则将字符写入。
       注意:问清楚是在原来的字符串空间里进行替换还是开辟新的空间。


    问题总结:

       1.开场白要突出项目的技术亮点和难点。
       2.百度注重基础和算法。
       3.服务器方面和操作系统方面。

  • 相关阅读:
    【Vue】详解Vue生命周期
    千万不要用window自带文本编辑器编辑配置文件或者代码
    [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级
    [转]解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend
    [golang]使用gomail发邮件(在Go中发送电子邮件的最佳方式)
    [golang]按图片中心旋转后的新图左顶点和原图左顶点的偏移量计算
    分布式CAP定理,为什么不能同时满足三个特性?
    Java如何运行一个class文件的main方法
    数据库的四大特性以及四个隔离级别和引发的问题
    Redis为什么可以支持那么大的并发访问量?为什么redis没有单点并发瓶颈?
  • 原文地址:https://www.cnblogs.com/koocookie/p/7056107.html
Copyright © 2020-2023  润新知