200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 字节跳动 华为 阿里巴巴 小米 腾讯大厂面试经历系列之(面试题篇)

字节跳动 华为 阿里巴巴 小米 腾讯大厂面试经历系列之(面试题篇)

时间:2019-02-02 17:03:14

相关推荐

字节跳动 华为 阿里巴巴 小米 腾讯大厂面试经历系列之(面试题篇)

前言

最近看到很多人都在找工作, 而且很多人都感觉今年找工作比去年难很多, 竞争力也增加不少, 因此激发我整理这份资料, 希望能帮到正在找或者准备找工作的童鞋们.

首先我们能否获得一个面试机会, 那肯定是从简历开始, 简历需要做好功夫, 一份好的简历才足够吸引企业得到面试机会, 接着就是面试了,面试前必须要先做好准备, 多看一下前辈们总结面试题, 有哪一方面不足的地方赶紧补充一下, 还有要了解一下你即将面试那家公司.

技巧篇

做题

看完面试题之后那就来做一下面试题目吧, 目前找到两个网站

SillGun(国外网站, 自备梯子)牛客网

聊面试

(帅张)stormzhang 跟你谈一下面试那些事儿

面试时企业最看中你什么能力?我面试到底问什么?Android 面试那些事儿

互联网招聘平台

拉勾-专注互联网职业机会简寻-让职位推荐更精准100 offer-帮最好的互联网人发现更好的offerBOSS 直聘-互联网招聘神器LinkedIn (领英)哪上班

一力顶十巧(刷题)

字节跳动

一面(1hour):

0、自我介绍

1、handler机制,sendMessage和post(Runnable)的区别。

2、ThreadLocal原理,底层实现

3、HashMap底层,扩容,LinkedHashMap

4、Service的onBind和onStart差别

5、Activity启动生命周期,A跳转B

6、Android持久化方案,SharedPreference是否可以跨进程通讯。ContentProvider

7、ClassLoader机制,双亲委派。如果我要写一个Activity类,那怎么保证加载的是我自己写的Activity

8、算法题,约瑟夫环

9、反问

二面(1hour):

0、自我介绍

1、项目技术点详解

2、写过什么自定义View

3、OkHttp代码看过吗,用了什么设计模式

4、MVC、MVP区别,项目中的实现。

5、LiveData和EventBus的相关讨论,真的是讨论,畅所欲言

6、看过哪些源码

7、SharedPreference相关

8、Android动画了解吗,用过什么

9、TCP、UDP区别,面试时的语音用的是什么,为什么要这么用。

10、代码题,5个线程对一个int进行累加到1000.

11、反问

三面(50mins):

0、自我介绍

1、算法,跳棋盘

2、浏览器输入URL到渲染全过程

3、Http请求报文响应报文

4、http2.0有哪些优化

5、用过哪些网络库

6、OkHttp的Intercepter

7、Android持久化方式

8、Java线程同步的数据结构

9、反问

总结:字节跳动面试官都很和善,所有的问题都是在讨论,我不会的他们也容许我猜一下,然后告诉我猜的对不对……

华为

一面(1hour):

0、自我介绍

1、项目介绍,技术点相关。

2、C++和Java区别,GC

C++不熟,只能说内存管理相关的问题,所以就问到了GC。然后说分代收集算法。老年代担保、元数据区从JVM移到了本地内存这些。

3、线程相关,Runnable和Thread的区别。

Thread类是实现了Runnable接口,平时使用起来可以使用start方法调用。线程池基本传Runnable对象,平时也是线程池用的多,所以具体相关不太熟。

4、线程池

5、synchronized,volatile

6、继承相关,多重继承和接口

7、网络编程

8、UPD,TCP区别

9、最大的优点

10、最大的缺点

11、算法,二叉树中序遍历,真是早起毁一天,竟然没撕出来,我真想给自己两耳光。不过面试官给我总结的很好,说要利用栈的特性,先进后出,所以要保证左子树先进根结点再进,这么思考之后就顺利了很多。

总结:早上状态很差,简单问题也会卡壳,希望大家还是能够选择自己状态好的时间点面试……。

二面(40mins):

0、介绍一下项目

1、Android四大组件,详细讲一下。

2、Launcher启动APP的全过程。

icon存入口Activity信息

AMS通知Launcher去pause。

Launcher通知AMS已经pause

AMS检查进程是否已经启动,如果不启动则启动进程。并且调用ActivityThread的main方法。

启动之后通知AMS已经启动

然后AMS将入口Activity信息传递给APP。

APP启动对应入口Activity,并且创建对应上下文并且调用Activity的onCreate方法。

3、进程间通信,AIDL,Binder。扯了一会说进程间通信平时怎么做的,就说了一下AIDL相关的Demo实现什么的。说到了自己程序里面有拉起微信的这个功能(也就是广播)。

4、设计模式了解吗,平时用过哪些设计模式。

5、算法题:输入一个数n,代表有n个点,一个二维数组,二维数组代表相连的点,要求输出连通起来的点。

如果n=6,数组假设是{{1,2},{2,3},{4,5}},则输出{{1,2,3},{4,5},{6}}

吐槽一下,本来24号早上约的9.30和10.30两轮面试,一次约两轮我也是醉了。然后就二面拖了快一个小时才面上。早起代码状态真的差,这两题都写了分别用了快20分钟,真的捉急。

一个午觉起来,收到了面试通过的短信,效率还是非常高的。还以为挂了呢,看来只是面试官想吃饭了……

三面(<30分钟):

0、自我介绍

1、公司实习期项目

说了RePlugin框架原理,说了ffmpeg动态链接库开发方面的失败经历,说了Android的适配,和最近影响到的AndroidQ相关新特性的适配。

2、自己大学生活中攻克的最难的技术难点。

3、什么情况下会压力特别大,怎么处理的。

4、职业规划

综合起来就是了解个人情况,技术问题都是自己说的。还是非常愉快轻松的。

总结:华为面试安排非常紧张,但是反馈效率特别高,一二面结束马上会短信通知是否通过。然后隔天直接三面,流程走的非常快。

阿里巴巴

一面 50分钟

1.项目相关

2.安卓AIDL

3.四大组件

4.Activity四种启动模式

5.Fragment生命周期

6.Activity之间的通信方法

7.SSL/TLS,以及位于哪一层

8.GET和POST区别,登录用哪个

算法:层序输入二叉树,计算深度

二面 25分钟

1.项目相关

*三面 1小时

1.项目相关及拓展

2.场景实现结合安卓特性分析

3.算法:4道数组题及其变形题,主要考逻辑

HR面

1.常规问题

项目是两个local / offline安卓app,总体上项目扯得比较多,包括底层原理、开发需求、实现方法、优化拓展等

小米

第一面:

问了一些Android基础;

2个算法。

第二面:

问了一些JVM相关;

类加载器;

FrameWork层。

第三面技术经理:

问了一下项目经历;

离职原因;

期望薪水;

解决问题能力等。

顺便写了1个算法。

第四面,第四轮貌似是个技术专家之类的角色:

一直在追问各种原理和基础细节,还有一些比较古怪的问题,考察基础和反应能力;

1个算法;

总结:有4个算法。小米的技术团队还是比较强的,一线工程师的基础都很扎实。不是很熟悉的技术不要往简历里面写,被揪住了是会扣分的。很注重基础细节,基础一定要扎实。

腾讯

一面(30mins):

0、自我介绍

1、View过度绘制有什么工具进行查看

2、SharedPreference两个进程同时进行读写会有什么问题

3、Android进程间通信方式

4、热修复原理,讲的Tinker

5、DNS协议,CDN

6、算法题,一个数组有两个数字不同,其他都成对出现,怎么找出来

7、智力题,一块钱买一瓶水,两个空瓶换一瓶水,n元能喝几瓶水。

总结:面试完又被说表现得不错了……

二面(1hour30mins):

0、大模拟代码题……一个小时

三面(2hours30mins):

0、自我介绍

1、实习工作深挖

2、RePlugin原理深挖,其他插件化框架对比

3、为什么要选择RePlugin框架

4、你觉得自己对于Android掌握到了什么地步

5、看过什么源码

6、你为什么要看源码

7、你为什么要写博客

8、知道哪些著名开源框架

9、什么是进程,进程调度算法

10、什么是线程

11、你觉得什么是JVM

12、有哪些线程同步算法

13、死锁是什么,举个例子

14、Object有哪些方法

15、Java异常有哪些,Error和Exception区别

16、OSI七层模型,TCP、UDP是哪一层,应用层有哪些协议

17、如果要设计一个大量图片下载的方法,如何确定并发量,有哪些指标。

18、APP间传递消息安全吗?要怎么做才能安全呢?

19、广播怎么分类

20、自定义View重写的关键有哪些,onLayout和onMeasure区别

21、Android有哪些动画,MotionLayout讲一下。MotionLayout使用场景。

22、Activity四种启动模式,SingleTask和SingleTop的使用场景

23、一些Framework层的问题,不太会所以记不得了。但是告诉面试官我已经下了Framework层相关电子书,是下一步需要看的。

24、你为什么想了解Framework层知识。

25、算法题,我想dp写逆序对的,没写出来心态崩了

26、你对于我们的Offer是什么态度

27、反问

从学生转变身份到程序员,最需要自己提升的能力是什么?学好专业基础课、对新知识有热情、愿意钻研、关心技术动向。

腾讯现在用什么语言,Java、Kotlin?有没有用Flutter相关。现在还在用Java,但是准备转Kotlin,Flutter方面已经做了很多动作了。

总结:LZ知道自己Android新技术不是特别过关,很多问题一问深了就有点吃瘪,尤其是面试官一开局怼了一堆RePlugin相关问题,确实能力不够回答不出来。

后面又开始综合能力以及基础能力的考察,这一部分我自认为还可以。

面试官特别不喜欢背书,所以问的问题都是带有思考在里面的,很多问题都是你觉得是什么,而不是什么是。

面试官人真的很好了,面了我两个半小时,真的有点累。

尾声与建议

经过了这么多年的磨砺,除了硬实力之外,有一些需要自己注意的技巧分享出来:

1、简历不要投太早,容易因为太久没被处理导致心态崩溃。因为我之前2月底投了一波,但是那时候很多厂简历筛选工作还没开始,搞得自己无名焦虑,头发又少了。

2、不要给面试官一种你在背知识点的感觉,要结合实现进行分析。我这里有一句话:**数据结构决定算法、算法决定数据结构。**就拿TCP举例,你要是遇到TCP的头部结构有什么的问题,是不是就懵了,觉得这是靠背诵的。但是你套上这句话,联想一下知识点:SACK确认机制、滑动窗口、全双工通道、套接字结构……是不是就能够理解为什么需要那些头部结构了,都是有对应的功能需要实现才会出现这些结构的。遇事不决拿结构分析。

3、多看源码,源码里面有很多注释,很多时候看看注释就知道这个类是干什么的了,然后再往下跟,会有助于自己理解逻辑。更重要的是让面试官知道你这种跟源码的学习方式。

4、调整好心态,不要因为某些厂把自己挂了就觉得自己不行。这是我被挂多了之后的心得,此处不留爷自有留爷处。

5、面心仪的公司之前先面几家其他公司,小公司或者同等体量的公司。

6、面试一次复盘一次,整理自己发挥不好的点。不能说一次问你不会两次问你还不会吧,那不是能力问题,那是态度问题。而且很多厂是有面试记录的,二三面转挑你面试不好的问题问你。

如果你也需要临时抱佛脚,过来领取吧,我免费分享给你!

只展示部分《 BATZ及其30家大中级公司Android开发岗 面试精选合集》需要这份771页PDF面试题精选可以点赞+评论【面试】即可获取!!!

自行加群直达链接:【点击获取】

点击【GitHub】免费分享大牛个人面试进阶学习笔记!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。