华为Android一二三面面经
一面(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、介绍一下项目
如果n=6,数组假设是{{1,2},{2,3},{4,5}},则输出{{1,2,3},{4,5},{6}}
吐槽一下,本来24号早上约的9.30和10.30两轮面试,一次约两轮我也是醉了。然后就二面拖了快一个小时才面上。早起代码状态真的差,这两题都写了分别用了快20分钟,真的捉急。
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、职业规划
...
综合起来就是了解个人情况,技术问题都是自己说的。还是非常愉快轻松的。
总结:华为面试安排非常紧张,但是反馈效率特别高,一二面结束马上会短信通知是否通过。然后隔天直接三面,流程走的非常快。
3月27日,问了hr,说只要通过了面试,一周左右就会下来offer。
#华为##校招##安卓工程师##面经#