前言
前面章节有提到裁员,没错在这经济下行的2024年年末我遭遇了裁员。在这段时间里面试了几家公司,将一些面试经验分享给大家,希望对大家有所帮助。
由于近年来Android发展迅速,涉及到多个方面如Java、Kotlin、Jetpack、Compose、Flutter、Framework、车载、TV、机顶盒、智能硬件等。作为Android开发者来说,需要学习的东西实在是太多。 以后还有鸿蒙需要学习,不过对大家来说可选择的工作变多了,加油吧少年。
总体上说,有如下几种面试题型:
- 基础知识
- 项目经历
- 算法题
面试常问
-
Java相关
- 抽象类与接口的区别
- 深拷贝与浅拷贝的区别
- equals()和hashCode()的区别
- JVM中类的加载机制与加载过程
- 虚拟机内存模型
- 什么是双亲委派
- JVM的整体组成部分
- 垃圾回收机制及回收算法
- 说说Java的三大特性:封装、继承、多态
- 字符串常量池和new String区别
- 强引用、软引用、弱引用、虚引用区别及应用
- 注解RetentionPoicy.SOURCE、RetentionPoicy.CLASS、RetentionPoicy.RUNTIME区别
- 数组和链表的区别
- hashmap的原理及如何扩容
- 线程的几种状态及如何创建和终止
- 线程池有哪些及如何保证线程安全
- 静态代理和动态代理的区别,什么场景使用
- 单例模式有哪几种,如何实现
-
Android相关
- 四大组件有哪些及通信机制
- 如何自定义View及事件分发机制
- Activity的生命周期及启动模式
- View滑动冲突如何解决
- RecyclerView缓存原理及如何优化
- Handler、Message、MessageQueue之间的关系,一个线程有几个Looper及原因
- HandlerThread 的使用场景和用法
- WebView如何与native通信及性能优化(包括首屏加载)
- view.post与handle.post的区别及分别什么时候执行
- http与https之间的区别及三次握手与四次挥手的原理
- Tcp与Udp之间的区别及使用场景
- 模块化、组件化、插件化之间的区别及架构如何搭建
- MVC、MVP、MVVM、MVI之间的区别
- LiveData和ViewModel的原理
- 进程通信方式(IPC)有哪些及区别
- AIDL中的方法可以重名么,oneway关键字的作用,最大内存是多大(1M)
- ANR怎么产生的,如何分析处理解决
- android如何做性能优化(包括启动优化)
- Seriazable与Parceable的区别
- binder机制通信原理
- Android系统启动流程或者App冷启动流程
- 怎么处理OOM和内存泄漏
- Compose
- kotlin 中 let run alse with apply 区别
- kotlin 如何扩展函数及是否可重载
- kotlin 中 lateinit 和 lazy 区别及是否线程安全
- 线程和协程的区别及如何取消
- kotlin中如何捕获异常及嵌套协程之间的关系
- inline、noinline、crossinline之间的区别
- 协程如何切换线程
- dialog和popup会影响activity生命周期么及为什么context只能使用activity
- Android启动界面如何修改
- 系统级Luancher App如何开发及apk放在哪个目录下
- Framework层如何添加自定义服务
- View, SurfaceView, GLSurfaceView, TextureView的区别
- Window 和 Activity 的关系
- PathClassLoader与DexClassLoader有什么区别
- Aop、AspectJ、ASM有了解么
- 为什么 Android 要采用 Binder 作为 IPC 机制
-
常用第三方框架
- okhttp实现原理及运用
- glide三级缓存原理及运用
- retrofit实现原理
- RxJava实现原理
- Arouter实现原理
- eventbus实现原理
- LeakCanary、BlockCanary实现原理
-
算法
题海战术,刷题即可
简历
简历的作用是展示你的技术能力、项目匹配性、个人信息和工作履历。好的简历让你在众多候选人中脱颖而出,它是帮助你获得面试机会的敲门砖。同时,务必保证简历的真实性,天网恢恢疏而不漏,觉得不好的经历,可以不写,如果HR有问,再如实告知,但不能造假,否则就算能力再强,也很容易被直接Pass。
主要包括如下四个部分:
- 个人信息
基本信息项:年龄 \ 学校 \ 联系方式 \ 证书(例如英语六级)
技术附加项:博客或者Github - 个人技术栈
模版如下:
- 工作经历
公司名称: …
工作时长: …
职位名称: …
职责及内容:… - 自我评价
要体现出学习能力强,同时也要端正自己解决问题的态度。
总结
总之,面试的态度很重要,运气也是面试过程中很重要的因素。很多时候,面试不过,有可能跟当面你的面试状态以及和面试官有关,不一定代表你的实力。 准备好复习,多面试几次,调整好自己的心态和状。