爱因斯坦说过“耐心和恒心总会得到报酬的”,我也一直把这句话当做自己的座右铭,这句箴言在今年也彻底在我身上实现了。
每一个程序员都拥有一座大厂梦,我也不例外。而对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二线城市的普通本科,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了阿里offer。
今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!
我是6.28下午投的简历,从投送简历到面试结束一共经历三次技术面+一次HR面,耗时39天。
腾讯三次面经+HR面
腾讯一面面试题
- 自我介绍+项目介绍
- Activity的启动模式?如何缓存的呢?
- 怎么保证service不被杀死/进程保活?
- 动画有哪几类,各有什么特点,请简单分析下属性动画的实现原理。
- 请简述Handler/looper机制
- 请介绍下activty的加载过程。
- 请分析下Android的事件分发机制,请详细说下整个流程
- 请分析下View的绘制流程。
- 如何加快冷启动速度?
- 算法题:有1000万人,有10000份新冠检测试剂,如何尽可能多的检测出来得新冠的人
腾讯二面面试题
- 介绍项目
- JVM内存分布
- Binder机制?Binder是怎么样实现Client、Server和ServiceManager通信的?
- HashMap底层、扩容、ReHash过程
- 锁?锁的自旋、公平锁非公平锁,CAS有了解吗?
- ViewModel的生命周期?
- ClassLoader机制?为什么要双亲委派
- Android中一个View的显示渲染过程,自定义View的时候需要避免什么操作?
- 实现一个单例有哪些方式?双重检验锁为什么要两次检验?为什么要加Volatile
- ANR在什么情况下会发生?
- 为什么Looper不会阻塞线程?
- 换一题,两个子节点的公共父节点(找root和target路径的方法用递归)
腾讯三面面试题
- 介绍项目
- AsyncTask的实现原理及优缺点
- 自定义view三部曲,流程(或者实际场景题,例如实现一个表盘,怎么做)
- 能不能在非UI线程更新UI
- 怎么知道一个Activity是否发生了泄露
- Android中的MVC、MVP、MVVM的区别和联系
- onSaveInstanceState和onRestoreInstanceState的调用时机(需要理解,一般会出个场景让你判断)
- clone和直接下载zip压缩包的区别是什么?
- 组件化以及如何解决合并冲突问题?
- 手撕代码:求所有在数组中的A,A满足前面的数都小于该数,后面的数都大于该数
- 谈一下你做这个岗位的最大优势?
腾讯HR面
来面我的HR,是个非常漂亮的小姐姐。她问的也不太多,差不多半个小时就问完了,感觉她还挺害羞的。
- 你希望你工作的地方在哪个城市?
- 你最期望的薪资是多少?
- 对部门和面试官,你有什么建议?
后面扯了一点家常,也扯了一点职业规划,问我以后想往哪方面转型、这些的。如果HR这面你没有很大的问题,offer基本到手。
腾讯三面面试题答案:
因篇幅问题,面试题答案整理在pdf文档里,希望可以给大家做一个参考~;获取方式在下方↓
复盘总结和建议
其实面试过很多次以后,你就应该明白拥有以下几点,面试已经成功一大半了。
01—调整自己的心态,正确面对得失
面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职朋友们在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
02—提升技术,扩宽知识
对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?
以下是我个人的一些做法,希望可以给各位提供一些帮助:
Java基础方面:JVM、String、内部类、多态、抽象和接口、集合框架(Hashmap、Arraylist)、单例、线程、Synchronized、Look锁、动态代理、引用
Android基础方面:四大组件、View、进程、Bitmap、屏幕适配、消息机制、线程异步、WebView。
Android扩展方面:ART、Apk优化、Hook、Proguard、架构(MVC/MVP/MVVM)、Jetpack、NDK开发。
Android源码方面:Leakcanary、Eventbus
设计模式方面:面向对象六大原则、工厂模式、单例模式、建造者模式、观察者模式、适配器模式、策略模式、代理模式
算法方面:排序、二叉树、链表、栈和队列、二分、hash表、堆、数组/双指针、字符串处理、动态规划
网络知识:Http(缓存、Https、Http2.0)、TCP(三次握手四次挥手、socket)、类加载器
附上我搜集整理的Android知识点汇总(包括了Java基础+Android基础+Android进阶+Android源码+算法题及答案解析+设计模式+网络)+高级Android开发进阶思维导图,把技术点一层一层分化总结(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
全部资料打包领取方式:——“点击此处即可获得”
Java基础方面部分截图
Android基础方面部分截图
Android进阶方面部分截图
Android源码方面部分截图
算法题汇总(部分截图)
网络知识(部分截图)
高级Android开发进阶思维导图
结束语
对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。
以上内容中我所整理的Android知识汇总和腾讯面试复盘PDF,“点击此处即可获得”希望大家面试顺利,拿下自己心仪的offer!
网友评论