华为三面成功通过!让我们看看面试官都问了什么!

本文详细记录了一位开发者在华为移动开发面试的过程,涵盖了一面的C++与Java区别、线程、同步机制、网络编程等技术问题,二面的Android四大组件、进程间通信、设计模式及算法题,以及三面的项目经历、技术难点与职业规划。面试者分享了面试中遇到的挑战和解决思路,提供了宝贵的面试准备建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一面(1hour):

1、自我介绍

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

3、C++和Java区别,GC

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

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

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

5、线程池

6、synchronized,volatile

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

8、网络编程

9、UPD,TCP区别

10、最大的优点

11、最大的缺点

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

二面(40mins):

1、介绍一下项目

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

3、Launcher启动APP的全过程。

icon存入口Activity信息

AMS通知Launcher去pause。

Launcher通知AMS已经pause

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

启动之后通知AMS已经启动

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值