腾讯Android一面凉经未完待续

腾讯一面(1hour):
0、自我介绍+项目介绍,面试官边看着我github上的代码边提问
Java基础部分
1、面向对象的三大特征。你是怎么理解这三大特征的。
扯了一下高内聚低耦合,用类比生物哺乳动物类比了一下继承,使用动物吃东西类比了一下多态。
很鸡贼地在这里加入了属性隐藏方面的知识点。
2、抽象类和接口的区别,平时的应用场景。
抽象类:可以定义属性和具体的实现,只要有一个抽象方法就是抽象类。
接口:所有的方法都是用来继承的,不能有具体的实现和属性。
用接口可以更方便的实现多继承,用抽象类的话只能使用内部类的方式实现多继承。(快快快问我内部类)
抽象方法可以统一定义风格方面的属性和实现。
3、平时开线程的方式。
线程池,Thread,HandlerThread。
然后讲了一下线程池的参数,线程池的工作流程。通过创建和回收的效率方面对比了普通线程。
4、线程同步方法。
volatile、synchronized、Concurrent包中的BlockingQueue、Semaphore。
然后展开讲了一下volatile的原理、底层实现内存屏障、应用、synchronized底层的WaitSet、onDeck、Owner、BlockingQueue。
然后讲了一下BlockingQueue的两种常用形式利用信号量帮助编程人员更轻松使用BlockingQueue。
忘记扯ConcurrentHashMap设计的分段锁了,大失策……因为可以扯分段锁,可以扯CAS+ABA。
Android基础:
5、Android四大组件……算了太简单了不问你了。
6、Activity启动模式,应用场景,SingleInstance的使用,会有什么问题?
面试官说SingleInstance启动方式会遇到跳转时候的问题,我没注意过,得再去查证一下。
7、触摸事件分发机制。
王炸……写过博客分析过原理,加上自己处理过MotionLayout的上滑冲突。https://blog.csdn.net/qq_43652500/article/details/100186032
再说了一下平时运用到触摸事件的地方比如处理冲突,比如DraggerHelper。
然后面试官说你是怎么学习这方面知识的……
8、handler机制,讲一下多个handler怎么确定哪个handler处理哪个Message。
ThreadLocal->Looper->MessageQueue->Message->target->handler,懂的自然懂。
9、进程间通讯。AIDL了解吗
王炸……
IBinder->Binder->AIDL,代理-桩模式,Server+Client+ServerManager。加上AIDL对应类的包路径要一致,扯了一下应用,但是自己其实也就写过一个Demo。
然后结合AIDL说了一下四大组件的沟通更多的都是利用AIDL,展开说了一下AMS(Application Manager Service)、ATP(Application Thread Proxy)、AMN(Application Manager Native)。
10、Serializable和Parcelable区别以及应用场景。
Serializable容易频繁触发GC,因为序列化过程中会产生很多的临时变量,但是稳定。
Parcelable快,但是某几个版本实现不一致,所以不适合用于网络、本地存储等。
然后说了一下平时本地通信都是用LiveData、EventBus实现四大组件之间的通信,所以基本没用过序列化相关。
11、C++会吗,JNI。
这个就不太会了,只能说一下可以通过返回值+方法名+参数类型来在JVM中唯一确认一个方法进行native方法和Java方法入口的映射,记不得JVM中这个叫签名还是叫什么了比如:
public void set(String name)对应的应该是set(LJava.lang.String)V这个?记不得了,要回去复习JVM了。
再说了一下可能用JNI比较多的地方是一些音视频开发的工作因为会用到ffmpeg编译的动态链接库。
代码能力:
反转链表,Stack实现、说了一下三个指针、递归实现的思路。
二维数组中的查找:
最开始的思路是从左下角开始搜,然后每个一维数组二分,但是后面面试官提醒了一下,马上意识到应该维护x,y两个坐标值右移或者上移。
反问环节:
TEG平时是做什么的呀?
然后被告知是WXG,看来我是被WXG捞的。
微信是一个很成熟的产品部门,那么平时的开发注重效率还是新功能的研发呢?
我们不做微信,我们做语音助手。然后被介绍了一波部门。(难怪要问我JNI……也算撞上了,了解过ffmpeg)

面试感受:
小哥哥太温柔了,面试过程疯狂说很好,搞得我不好意思了……最后还夸了我一波。希望有二面吧

然后在3月25日变灰了,看来与腾讯无缘了。分析了一下失败的原因可能是因为匹配度不高,他们团队是做语音助手的,所以需要c++能力,太久没用过c++了。

3月27日接到了腾讯的电话,被捞了约了30号的面试!
#腾讯##校招##安卓工程师##面经#
全部评论
看傻了,LZ几年经验,P7?
点赞 回复
分享
发布于 2020-03-24 00:58
你的王炸牛皮 哈哈哈
点赞 回复
分享
发布于 2020-03-26 01:15
阅文集团
校招火热招聘中
官网直投
楼主这也tql  !!!
点赞 回复
分享
发布于 2020-03-26 09:22
咱们这是一个面试官吧,,题都是一样的。。。
点赞 回复
分享
发布于 2020-03-26 14:43
现在咋样啦
点赞 回复
分享
发布于 2020-04-05 23:21
&靠 老哥,我来加入你的队伍了,一起肝腾讯
点赞 回复
分享
发布于 2020-04-06 00:24

相关推荐

1 19 评论
分享
牛客网
牛客企业服务