BAT电话面 —— 你怎么看?

BAT 电话面会问你什么问题呢?假设你突然接到了电话,面试官问你以下问题,你会说出怎样的回答呢?

以下是我的复盘,仅给大家做个参考。

讲一下你了解的排序算法?

可以根据 时间复杂度 来划分:

  • 时间复杂度为 O(n²) 的主要有:冒泡排序、选择排序、插入排序。
  • O(nlogn) 的主要有:快速排序、归并排序、堆排序。
  • 比较特殊的有:基数排序、桶排序等。

从有序数组中找出第 K 大的数,你会用哪些方法?

比较常用的有两种方法:

  1. 在数组中,基于 快速排序,当分界点 mid 索引为 k-1 (从 0 开始)时,左边的数都小于 mid,右边数都大于 mid,此时分界点 mid 为第 K 大的数。注意这里改变了数组元素的位置。
  2. 维护一个 K 大的「大顶堆」(父节点值大于等于子节点值),遍历数组完成建堆和堆化的过程,当数组便利完成堆顶数就是第 K 大的数了。(推荐使用,不改变原有数据顺序)

这道题还能进一步扩展:找出前 K 大的数。这里快排解法思路不变,方法 2 由「大顶堆」换成「小顶堆」(父节点值小于子节点值)。

讲一下你对 TCP 协议的理解?

这个范围太广了,我也只记住一些常听见的名词。

首先,从网络的体系结构来看,TCP 协议是位于 传输层(运输层)的协议。是一种 面向连接、可靠的、基于字节流、尽最大努力交付 的传输协议。

其次,TCP 数据传输特点:无差错、不丢失、不重复、按序到达

Telnet、SMTP、HTTP、POP3 等应用层协议都是基于 TCP 的。

TCP 传输过程可以概括为:三次握手(建立连接),四次挥手(断开连接)。

三次握手:1、客户端向服务端发送建立连接的请求;2、服务端接收到请求,发送确认连接请求;3、客户端接收到确认,发送客户端确认信息,服务端接收确认,连接建立成功。

四次挥手:1、客户端发送断开连接请求;2、服务端接收到断开连接请求,发送确认断开。3、等待一段时间后服务端发送服务端断开连接请求(处理完未发送消息);4、客户端接收到服务端确认断开、服务端连接断开请求后发送确认关闭,服务端接收确认关闭,关闭本次 TCP 连接,完成四次挥手。

介绍一下你简历中出现的 XX 项目?

主要介绍一下项目使用的技术栈、功能模块,面试官会根据你的回答针对性问你下面的问题,所以你需要对你的项目比较熟悉,最好写一份相应的文档介绍。

开发这个项目你所遇到的最大的困难?

这个各有不同,我的项目里的技术栈大部分来自于自学,而且国内这方面的资源比较少,所以通过 Github、Google、Stackoverflow 我慢慢入门了 ASP.NET MVC 最终实现了我的项目。

为什么选用这项技术?

和现有的技术栈向关联,而且对比 ASP.NET 前后端耦合,ASP.NET MVC 前后端分离的更彻底,网页的设计更方便,其中也集成了类似于 JPA 等技术,可以更快的完成一个网站项目的搭建。

对于未来三年的规划?

自己选择了计算机专业,同时对计算机、互联网也很有兴趣,希望能够在 BAT 这样的公司工作,在技术上成长更多。

岗位方向的选择?

因为面试的岗位是「移动应用开发」,随着 web 2.0 的发展,网页跨平台能力的发展,和 ios 、 Android 等原生语言开发的功能体验差距越小,相对来说网页这一块的潜力更大一些,所以希望是 web 后端的方向,但是具体工作的可以根据公司的需要来安排。

有没有什么想要问的?

问了下接下来还有哪些面试环节,以及这段时间还需要哪些准备。(因为是电话面,面试官没有讲太多,只是建议我好好做好未来几年的规划)

这些题目的答案只是我的一家之言,仅给大家做个参考,如果你有什么更好的答案不妨在留言区给出。菜鸟踩坑,希望大家都能收到自己心仪的 offer​。​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值