学姐百度实习面经(轻松拿offer)

本系列历史文章:

学姐,来挑战字节最牛部门

最强阿里巴巴历年经典面试题汇总:C++研发岗

关于我的那些面经——百度后端(附答案)

《关于我的那些面经》滴滴Java岗(附答案)

朋友面神策数据库,第五个问题不会,直接再见

美女学姐面了美团阿里京东,这些经验实在太真实了

学姐腾讯产品面经

学姐总结奇安信18k常问面试题

 这个系列计划收集几百份朋友和读者的面经,作者合集方便查看,各位有面经屯着可以联系我哦

 

1、测试环境搭建过程

2、  验证环境部署是否成功时 跑测试用例 接口是什么样的?(服务对外提供的调用接口)

3、  数据库 表 有个字段 name字段 name=liuguoge 唯一标识id=3 修改name=guogeliu

update user set name=guogeliu where id=3;

4、写链表翻转(说思路,代码中每一行的作用)

public ListNode ReverseList(ListNode head) {

       //当前节点是head,pre为当前节点的前一节点,next为当前节点的下一节点

        if(head==null)return null;

        ListNode pre = null;

        ListNode next = null;

        while(head!=null){

            //先用next保存head的下一个节点的信息

            next = head.next;

            //保存完next,就可以让head从指向next变成指向pre了

            head.next = pre;

            //让pre,head,next依次向后移动一个节点,继续下一次的指针反转

            pre = head;

            head = next;

        }

        //head为null,反转完毕,pre就是反转后链表的第一个节点

        return pre;

    }

5、 Scp和wget区别

curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。

curl支持更多的协议。

curl 支持FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE,

Wget 支持HTTP, HTTPS and FTP.

curl 默认支持HTTP1.1(也支持1.0),而wget仅仅支持HTTP1.0规范。

4.curl在指定要下载的链接时能够支持URL的序列或集合,而wget则不能这样;

5.wget支持递归下载,而curl则没有这个功能。

7、  重载与重写区别

定义区别:

①重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。

②覆盖(也叫重写)是指在派生类中重新对基类中的虚函数重新实现。即函数名和参数都一样,只是函数的实现体不一样。

类的关系区别

覆盖是子类和父类之间的关系,垂直关系;重载是同一个类中方法之间的关系,水平关系。

3.产生方法区别

覆盖只能由一个方法或只能由一对方法产生关系;重载是多个方法之间的关系。

4.参数列表要求区别

覆盖要求参数列表相同;重载要求参数列表不同。

5.调用方法区别

覆盖关系中,调用方法体是根据对象的类型来决定;而重载关系是根据调用时的实参表与形参表来选择方法体的。

 

1、介绍实习经历

2、  测试环境的检查(接口测试)

3、  写代码:奇数在前,偶数在后

private static void fun(int[] arr) {

    if (arr.length == 0)return;

    int front = 0,end = arr.length-1;//设置两个指针,一个指向头部,一个指向尾部

while (front < end){

       //从前往后找偶数

        while (front < arr.length && arr[front]%2 == 1) front++;

              //从后往前找奇数

        while (end >= 0 && arr[end]%2 == 0)end--;

        //将前面的偶数与后面奇数交换位置

if (front < end){

            int temp = arr[front];

            arr[front] = arr[end];

            arr[end] = temp;

        }

    }

}

 

 

如何判断bug前后端?

前端的问题:

在用户输入数据后,发送的请求没有带数据或者数据错误。

后台已经传回了数据,但在前端显示不出来。

后端的问题:

       接受请求后,存储/修改错误(查看数据库)

       返回数据错误

 

抓包工具来进行分析

通过请求与响应来判断。

1.请求接口url是否正确

如果请求的接口url错误,为前端的bug

2.传参是否正确

如果传参不正确,为前端的bug

3请求接口url和传参都正确,查看响应是否正确

如果响应内容不正确,为后端bug

4,后端bug需要查看 服务器的log日志

 

 

  1. tcp和udp区别

学姐百度实习面经(轻松拿offer)_第1张图片

  1. 如何抓包

3.一个真实的测试场景,问如何排查问题

4.黑盒测试和白盒测试和灰盒测试区别以及都有什么方法

黑盒:只关注输出的正确性

白盒:了解程序内部逻辑结构、对所有逻辑路径进行测试。

灰盒测试,介于二者之间的,关注输出的正确性,同时也关注内部表现。

 

方法:

黑盒:等价类划分、边值分析、因—果图、错误推测等

白盒:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、路径覆盖

 

 

三次握手

第一次:发送请求

第二次:告诉对方受到了请求并同意

第三次:告诉对方收到了你的同意,可以开始了。

 

为什么连接的时候是三次握手,关闭的时候却是四次握手?

 

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。

但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

 

tcp为什么能稳定传输

[1] 确认和重传机制

建立连接时三次握手同步双方的“序列号 + 确认号 + 窗口大小信息”,是确认重传的基础,

传输过程中,如果Checksum校验失败、丢包或延时,发送端重传。

[2] 数据排序

TCP有专门的序列号SN字段,可提供数据re-order

[3] 流量控制

窗口和计时器的使用。TCP窗口中会指明双方能够发送接收的最大数据量

[4] 拥塞控制

TCP的拥塞控制由4个核心算法组成。

“慢启动”“拥塞避免”“快速重传 ”“快速恢复”

 

HTTP状态码分别表示啥

信息响应(100–199)

成功响应(200–299)

重定向(300–399)

客户端错误(400–499)

服务器错误 (500–599)

 

你可能感兴趣的:(面经合集)