【笔记】 BAT电话面 问题 —— 你怎么看?
BAT 电话面会问你什么问题呢?假设你突然接到了电话,面试官问你以下问题,你会说出怎样的回答呢?
以下是我的复盘,仅给大家做个参考。
# 讲一下你了解的排序算法?
可以根据 **时间复杂度** 来划分:
- 时间复杂度为 O(n2) 的主要有:冒泡排序、选择排序、插入排序。
- 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。 indian806 发表于 2019-8-16 14:05
很实用的建议,谢谢大神!!当初面试都一脸懵
基本问的东西差别不大,提前准备状态会好很多 很实用的建议,谢谢大神!!当初面试都一脸懵{:301_1004:} 之前随便报了一下阿里的校招..都没准备然后凉凉...{:1_896:} 恶搞大王 发表于 2019-8-16 14:53
之前随便报了一下阿里的校招..都没准备然后凉凉...
现在大佬是不是已经在里面工作了 还没出来,在努力中 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
页:
[1]