Android开发Android开发Android开发经验谈

一个6年高级Android程序员的年终面试总结,含泪亲诉一波三折

2020-12-08  本文已影响0人  Android_until

人生是一个漫长的过程,我们怀有太多的期望,就难免会遭遇失望与挫折。

今天这篇文章是我自己2020的小总结,2020感恩遇见。

一年的遭遇

2020开头就是一个不平凡的一年,疫情来袭,许多互联网公司面临倒闭的风险,而很多程序员则在面临着失业裁员的风险。

而我就是裁员大队中的一员,组织架构调整,进行了人员优化,业务线被解散,被裁员。

然后为了更快的工作, 草草的面试了几家公司最后入职了一家小公司,每天做着没有技术含量重复的工作,刚开始只是想填补被裁员的资金漏洞,但是工作久了还是无法适应,工作都是一些边缘化的内容,自己考虑到没有什么实质性地成长,然后在几个月后裸辞了。

后来开始重视面试,仔细挑选公司投递简历,在面试前也前前后后复习准备了四五个月,后来面试了十几家大小厂,拿到了几个offer,入职了一家大厂,目前工作已经有小几个月,工作氛围很好,干劲满满,2021继续加油!

不放弃,不气馁!

接下来分享一下面试的一些题目,只记录了一部分,因为有些忘了。

字节跳动4轮面试

一面

二面

三面

四面

腾讯面试

滴滴面试

小米面试

算法题:

顺丰面试

手百3轮面试

一面

二面

三面

网易2轮面试

一面

跟HashCode有关系,如果输入17,会向后达到2的指数幂,32。

如果没有hash冲突的情况下,使用CAS进行插入,如果有hash冲突,使用synchronized加锁进行插入。当链表长度大于8且数据长度>=64时,会使用红黑树替代链表。

ReentrantReadWriteLock类中有readLock()和writeLock()方法可以分别获取WriteLock和ReadLock对象,调用他们的lock方法,就可以实现读写锁。实现原理就是AQS的acquire和acquireShared方法。

二面

一些高频重点问题

面试总结

讲一下大厂面试一些必备的技能

1. 一般情况下第一轮都是基础面试,需要扎实的基础

2. 第二轮的时候需要了解更深层次的东西

3. 能进入第三轮基本没什么问题,但是要注意以下问题

最后

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

《507页Android开发相关源码解析》 《379页Android开发面试宝典》

3.项目复盘

实际上,面试的一二轮所问到的技术问题,很多都是围绕着你的项目展开,因此在面试前最后要做好的一件事情就是项目复盘。关于项目复盘,我个人的思路如下,可供参考:

提前把思路捋一捋,上面这些问题好好思考或准备一下,做到心中有谱以后,自然能够面试官聊得融洽,保持一个好的心态,通过的几率就会更大一些。

资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图,以上资源均免费分享,以上内容均放在了开源项目:github 中已收录,大家可以自行获取(或者关注主页扫描加微信获取)。

上一篇下一篇

猜你喜欢

热点阅读