面试复盘 5家大厂面试对比,抖音客户端上岸分享

18 篇文章 0 订阅
16 篇文章 0 订阅

我21届秋招面试过快手、美团点评、百度、网易有道,最后上岸抖音Android客户端(base北京)。面试期间在牛客看了大量面经,面试时也有意记录下了面试题集。近期正值校招开启,特地整理出来回馈牛友~

【先说结论】

一定不要在还没有把握的时候就去面试你最心仪的公司,应该先试试其他公司,积累经验,认真复盘总结,查漏补缺,面试经历宝贵,请好好利用!
去年秋招期间也参加过一些笔试,基本上5道编程里能做出2道就能进面试,认真刷题就还行。
我的目标岗位是Android客户端研发,但其实本身并不会Android,只会Java(大厂JD上基本都写着接受客户端零基础)。
为了方便大家阅读,以下内容的面试题答案我自己也整理好了,有需要的可以直接跳到文末

一、抖音

先说这个上岸了的,投递的岗位是Android客户端开发工程师,三轮技术面。

面试回顾

三次面试都是持续一小时,基本分为:【自我介绍】【技术问答】【算法考察】三个部分。面试官提问题是围绕求职者来的,你简历上写什么,就着重问什么,听得特别认真,让面试者感受到尊重。技术考察时不是泛泛问,你回答时提了什么,就往那个点展开提问,整体感觉是更注重校招生的学习能力和发展潜力。而且面试官都超级nice,温柔耐心,我答不出来的他们还会引导我思考,像个师长,不像面试官。

一面

  • 自我介绍2分钟
  • 介绍简历上的项目
  • 项目是安卓相关的,让我讲项目中用到的知识的原理
  • 知道多少安卓的东西?我说粗浅了解,比如四大组件,Activity生命周期。于是让我说生命周期都调用了哪些方法
  • Android四大组件为什么被称为四大组件?有什么共性
  • Android进程回收优先级
  • 知道设计模式吗,讲一下
  • 我讲了单例模式、桥接模式
  • 代理模式知道吗,讲讲
  • 我讲了静态代理,面试官又说还有个动态代理,能说说吗
  • 于是我把两者的区别和动态代理怎么调用的说了一下,感觉面试官是满意的
  • 算法题,整数数组最大子串求和
  • Java的类加载过程
  • 我回答时说类加载用了双亲委派机制
  • 为什么要用双亲委派
  • 类加载器有哪些
  • 这些类加载器的父子关系
  • 自己平常写的类是用哪个类加载器加载的
  • Bootstrap加载器也是加载器,它的父加载器是哪个?
  • Java中常见的线程安全工具有哪些
  • 除了Java,你还会什么编程语言
  • 我说C、C++,python、js、php这些都用过,但不算熟练
  • 那你觉得C++和Java有什么区别

二面

  • 自我介绍
    面试官插播闲聊:你和内推人认识吗,怎么认识的?什么时候的网友啊,面基过吗,你家在南边,干嘛来北京啊,被她忽悠来的啊哈哈!(在这个过程中我放松了不少,紧张情绪退散!)
  • 介绍项目
  • Java中接口和抽象类的区别
  • final关键字的使用
  • 刚才你说到了重写,还有一个概念叫重载,这两者有什么区别
  • 写一下单例模式
    懒汉式单例中使用双锁模式这个考太多了,我直接写了这个,让面试官有继续抛问题的机会。果然他先是问了为什么要双锁,再问了为什么要用volatile关键字修饰单例变量。
  • 你刚才说了volatile关键字,那现在来聊一下这个关键字
  • 由这个关键字又展开了对Java多线程的各种问题
  • 说一下死锁的概念,构造一个死锁的场景
  • 进程通信方式有哪些
  • 我提到了管道,于是又问了命名管道、匿名管道
  • 计算机网络学的怎么样,说说http和https的区别
  • 你说https是加密的,用了哪些加密方式
  • 为什么要使用不同的加密方式
  • 算法题:计算岛屿个数

三面

  • 自我介绍

  • 介绍项目

  • 针对项目问了我很多问题,问得比前两面的都细致,特别喜欢问我对原理的理解

  • 由项目引申问了Android中的通信机制,问了handler

  • 项目中遇到什么比较大的困难,你是怎么解决的

  • Java的Map

  • 如果在多线程场景下hashMap会有什么问题吗

  • Java有什么容器是线程安全的吗

  • 你刚才说的那些容器是怎么实现线程安全的

  • JVM中的GC Roots 是什么

  • Java中的四大引用是什么,为什么有这四种不同的引用,知道应用场景吗
    我在回答时提到了内存泄漏,于是下一问就被问内存泄漏

  • 说一下内存泄漏

  • 怎么防止内存泄漏

  • 写代码:循环遍历List删除指定元素
    这里我翻车了,写出了异常,好在没有紧张到失智,用另一个方法写出运行正确的代码交了差,最后面试官还很耐心地给我解答报异常的原因。

  • 反问环节
    我没什么想问的,但是因为上一题代码写错了,我想给自己找补,就把一面时答得不好的问题重新说了一下。这里也有小心机在的,咱们要主动提及自己熟练掌握的东西,包括面试时也应主动把话题引到自己擅长的地方。

再过几天就拿到offer啦!

百日心心念念,一朝得偿所愿,恍然如梦。然而下一秒就是想抽自己几个大耳刮子——我要是早这样努力,至于当几年学渣?!那么我是怎么努力准备秋招的呢,想看的可以评论留言哦,需求多我就分享一下~

时间线:

2020.10.20 投递简历

2020.11.9 一面

2020.11.13 二面

2020.11.16 三面

2020.11.20 发offer

二、快手

9月5号,客户端开发工程师

这是我第一次面试,超级紧张,节奏掌握不好,而且当时才九月初,我连Java都没学扎实,光速挂了。

【教训:掌握好时间,别啰嗦】

  • 自我介绍

  • 最近最得意的项目简介
    本来人家只给我5分钟,我叭叭叭了18分钟 = =。

  • 现在我和你建立连接用的是什么协议

  • 为什么用无连接的

  • 你在浏览器上输入一个网址,按下回车后,都会用到哪些协议
    我事无巨细都说了,详略不得当,面试官叫我简略点

  • 说一下https的ssl过程

  • 还有其他技术问题,忘记了

  • 算法题:三数之和
    没写过,完全不会,写出来的只能过30%用例,面试官一直让我多想想,到最后我内心疯狂呐喊我要放弃!!

面试官挺年轻的,面试过程中不给人压迫感,还安慰我别紧张,就是聊聊。

三、美团点评

9月9号,Android开发工程师,也是一面挂

【教训:当场写生题的成功率在我这里为0,要想过关,唯手熟尔~】

对这场面试记忆不深刻,因为没被问Java、安卓、计算机网络之类的,面试官看我学过安全,就问我栈溢出、UAF之类的问题,还有C语言的问题。

算法:第n大的数
我当时觉得挺简单的,先快速排序一下再取结果咯,复杂度也不算高。然后麻溜儿地写出了一段搞反顺序的代码,“光荣”地挂了。

四、百度

9月12号,移动端软件开发

一面55min,当场告知我等下二面,二面38min,挂

这回有很认真地记录问题并复盘

一面(55min)

  • 自我介绍+问项目
  • 什么是深拷贝,什么是浅拷贝
  • 数组的拷贝是深拷贝还是浅拷贝
  • 重载和重写的区别
  • 什么场景用重载
  • equal和==有什么区别
  • tcp三次握手过程
  • 为什么要三次握手
  • 线程安全如何保证
  • 锁机制是怎样的
  • 线程通信怎么实现
  • 线程之间共享数据的话怎么保证数据安全性
  • hashmap的put过程解释一下
  • hashmap的哈希函数怎么实现的
  • 设计模式知道吗,如果if else很多怎么办
  • 算法:实现有重复数字的有序数组的二分查找,输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一

面试官也很耐心,给足我思考的时间。不过我感觉有点像看题库提问,问得比较泛,也没什么规律,没有死揪住一个知识点深挖。

二面 (38min)

  • 你有什么优点和缺点

  • 针对我说的优点,提了个场景问题

  • 安卓如何进行消息传递

  • 安卓和js的交互怎么实现的

  • Activity的生命周期,涉及到什么方法

  • ActivityA调用ActivityB(原先B没有启动),两者会调用什么方法

  • 如果ActivityB是弹窗或者半透明,ActivityA会调用onStop()吗,为什么

  • 安卓的ANR,怎么检测发生了ANR
    (ps:我都说不会安卓了还被连问Android,好崩溃,所以后来我才去了解那些最基础、面试最常考的安卓知识)

  • 了解设计模式吗?

  • 写一下单例模式
    我倒是能写出来,但是有细节瑕疵,所以还是不熟练啊!

  • 为什么你写出来的这个要判断两次if (Instance == null)

  • 说一下https的ssl过程

  • http2.0和1.0有什么区别

  • GC ROOT由什么组成

  • 说一下内存泄漏和抖动,开发的时候怎么避免

  • 智力题,烧绳子

二面面试官一看就是经验丰富的技术牛,问问题有层层递进那味儿了,我感觉好厉害。面试官也很耐心,我中间网络不好断过一次,后来就一直有杂音,但是对方一点不耐烦都没有,而且安卓那几个问题我是连续懵逼,他也没表现出不屑啥的。

五、网易有道

9月23日,Android开发工程师,一面挂

  • 问了很多我简历中项目相关的问题
  • 写个完整的、能正确运行的单例模式case
  • 线程通信(感觉面试官好喜欢问通信问题)
  • 面试题我忘得差不多了,只记得Java、计算机基础方面的问题都和上面的面试大同小异,我和面试官聊得还行,不知道为什么挂了。网易的面试官给我的感觉也很nice,让人莫名地感觉公司文化很好。

其实还面了一家也很有名的公司,但是面试体验差,也没有有效问题,就不写了。给大家分享一下连续面试被挂的心态,其实当时我整个人都挺不好的,回顾整个九月里的面试都在被打击,十分沮丧,网易面试的前一天,我都打退堂鼓了,很害怕被消磨自信,还好很快调整了心态。

从心态爆炸到臭不要脸

九月份这几次面试下来,我基本熟悉了面试Android客户端的套路,大概能猜测拿着我简历的面试官会在哪里提出问题,也知道自己欠缺在哪里,于是我决定用一个月时间专心为面试抖音进行学习,不再面其他公司了,毕竟投简历和笔试也很花时间的。

【写在最后】面试是很宝贵的经历,一方面是锻炼自己的面试能力,一方面是感受面试官的风格、水平,毕竟以后是要做同事的人,对方还很可能是你的leader,还是要合得来才行。另外,注意做好记录和复盘~面试被拒绝是很正常的事情!我们应该关注的是面试暴露出自身什么缺陷,而不应该沉浸在情绪里,杜绝玻璃心才是走向成功的开始哦!祝大家拿到心仪的offer~另外上面的面试题答案和自己的面试心得经验为了方便大家阅读,我自己也整理好了,放在了下面的二维码中,有需要的也可以自行提取。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值