前言
Offer: 腾讯,头条 ,网易互娱 ,bigo ,虎牙
挂了: 阿里,华为,cvte
今年移动端确实很好找工作,主要复习时间是4月 – 8月, 其中6月开始入职腾讯,开启苦逼又牛逼的边实习边复习模式。 8月底离职腾讯后,可能是转正希望足够大,也可能是前面压抑得太久,直接就进入放飞自我模式,基本放下了学习。 只有在出发去面试的路上,复习一下缓解紧张。
以下是本人对如何准备面试的看法,基于本人非常有限的经验,各位看官看看即好。
阿里
自我介绍
- Android学习方式
- 对源码是否了解(Android Java)
源码
- Handler消息机制(具体涉及到的类 & 细节)
- HashMap(数据结构 & put操作)
- HashMap扩容时间复杂度
- ArrayMap
JVM
- Java内存区域
- 堆栈区别
- 哪些区域线程私有,哪些共享
- 栈帧
- 方法调用时的入栈出栈操作
Java
- 并发访问:
- volatile(只保证了可见性和有序性,不能保证原子性)
- synchronized:修饰代码块/方法/对象的区别? (单例模式DCL会不会失效?)
- Lock
Android
- Activity生命周期(具体执行,涉及到哪些类?)
- ANR(什么是ANR?怎么监测,运行前,运行后,线上监测?)
项目
- 项目线程同步的优化(session/cooike/token/上传凭证的区别)
阿里一面 1h (挂)
自我介绍
项目
- 使用人数/有无上架商店
- 有无IM通讯模块
- 登录模块是怎么解决的
- 如何优化千万级别用户下让用户实时知道自己状态(APP端 & 服务器端)
Java
- synchronized修饰方法和类有什么区别
- volatile关键字作用
JVM
- 内存分配
- 垃圾回收算法
Android
- 事件分发机制
- 消息机制
- View绘制流程(具体原理,包括不限于绘制三大流程)
- Handler(怎么实现多线程?为什么Looper死循环没事?怎么实现线程间通讯?)
- 操作系统层面死循环是怎么回事?
- 死循环一定会导致ANR麽?
HTTP协议
- HTTP缓存了解不?
腾讯
提前批一面 50min
Android
- 四大组件是什么?轮番介绍之
- Fragment是什么?与Activity区别?
- SurfaceView与View区别?SurfaceView原理?
- 前台服务与后台服务区别?
- AIDL了解么?
- IPC方式?谁最快?
- Protocol Buffer了解么?
- APP中多进程有什么用?
- 方法数65536怎么解决?
- View显示过程?
Java
- 线程同步方式?
- 死锁是什么?
虚拟机
- 内存分配方式?
- 堆和栈的区别?
- GC?垃圾回收?
- class文件生成过程?
计算机网络
- 什么是HTTP?
- HTTP/HTTPS区别?
- TCP/IP 三次握手 四次挥手?
- TCP/UDP区别?
- HTTP是长连接还是短连接?
- HTTP状态码?
- 抓包工具?怎么抓包HTTPS?
设计模式
- 生产者,消费者是什么?
- 命令模式是什么?
数据结构
- 快排是什么?时间复杂度多少?
- 七大排序分别是什么?
- 二叉树原理?
- 红黑树是什么?
提前批二面 30min (挂)
C++
- class与struct区别(看到我相关课程上写了C++,就开始问我C++,我说C++基本没怎么用过,才开始问我Java)
项目
- 介绍项目,有什么难点?
- 竞赛用了单片机? 指令级是什么?
Java
- HashMap介绍下?
- ArrayList,LinkedList用法有什么要注意的?
- 注解介绍下?
- 泛型中类型擦除?
数据结构
- 线段树 B+树?
Android
- OkHttp了解不?
- OkHttp使用需要注意什么?
- RxJava介绍下?
- Activity四种启动模式?
- 一个APP 怎么退出所有Activity?
- 接上问如果有第三方SDK,怎么退出?
正式批一面 40min
手写代码
- 字符串出现频率中位数
- 最长公共子串问题LCS
项目
- OKHTTP框架
- TCP UDP HTTP区别
- TCP滑动窗口
- 用UDP实现TCP
数据库
- 三大范式
- 索引
- 怎么知道命中索引
操作系统
- 进程间通讯方式
- 共享内存原理
正式批二面 35min (挂)
项目
- 内存泄漏?
Android
- OKHTTP 对HTTP与HTTPs之间的区别
- HTTPs加密原理
- BlueboothAdapter
- Activity在AndroidManifest.xml文件中有哪些标志位?
- CLEAR_TOP?
- singleTop和singleTask分别的使用场景
- Android存储(文件,SP,数据库[具体介绍下SQLite])
JVM
- Android虚拟机与Java虚拟机之间区别
Java
- 深拷贝 浅拷贝(内存溢出or垃圾回收时有什么区别?)
- 多线程模型
数据结构
- 二叉树
- B树(插入/删除过程)
字节跳动
字节一面 1h
项目
- 介绍项目
- HTTPs加密的解释
- 对称/非对称加密
Java
- 深拷贝/浅拷贝,怎么实现深-浅拷贝 CopyonWrite
- Java内存(分配->回收)
网络通信
- TCP挥手 第三次不挥手会怎么样
算法
- 数组A 数组B 计算A-B
- 0-n之间所有质数(先求所有合数)
字节二面 1.5h
Java
- 线程同步问题(为什么需要同步&怎么实现同步)
设计模式
- 单例模式(静态内部类)
- 其他设计模式简介
数据结构
- 排序算法
- 归并/快排(实现原理/平均复杂度/能否提前结束/谁性能更优)
- 堆排(怎么实现调整堆结构/k个最大的数)
算法题
- 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组
字节三面 40min (挂)
自我介绍
- 专业课程
- 看过哪些书
操作系统
- 内存分配区域(Java层面回答?对象引用在堆和栈都有么?函数内部new的对象存放在哪?)
- 用户态/内核态
- 中断
计算机网络
- 计算机网络有哪几层?分别对应什么协议?
- IP TCP传输的都是什么数据?
- DNS?
Java
- 泛型上界,下界定义/作用
- Java有哪几种锁
- 临界区概念
- synchronized和可重入锁的区别
爱奇艺
爱奇艺一面 50min
项目
- 主要介绍了实习项目,分析了内存泄漏,线程同步的问题
计算机网络
- HTTP/HTTPS区别
Android
- OkHttp框架(里面有那些设计模式)
- 如何终止一个线程
爱奇艺二面 50min
介绍项目
- 内存泄漏的来源
- 有没有做过优化
Android
- Service的两种启动方式?区别在哪?
- 性能优化有没有做过?
Java
- 手写单例模式
算法
- 删除链表中一个节点
爱奇艺三面 40min
自我介绍
- 项目
- 有没有特别擅长的
Java
- public作用?
- .java文件名怎么确定?
- 外部类最多有几个?
- 内部类最多有几个?
- 内部类支持嵌套么?
- 线程池怎么给新建的线程设置名字?
- 线程池种类?
- 注解的使用?
Android
- Activity的启动模式下生命周期
- Activity A->B的生命周期
- Handler中怎么实现Looper和线程绑定?
- 一个线程最多有几个Looper?
- 多个Looper报的异常?
- 消息阻塞再次唤醒是什么机制?
- ThreadLocal是什么?
网易
网易一面 15min
Android
- OkHttp
- Retrofit
- RxJava
网易二面 15min
Android
- OkHttp
- Retrofit
- RxJava
算法
- 斐波那契数列
网易HR面 15min
聊天
- 怎么学习Android
- 专业
- 为什么不进医疗仪器行业
个人
- 城市选择
- 家庭情况
业务
- CC直播部门
- 先做培训和功能迭代
- 网易游戏的生态链一环 & 技术实力尚可
华为
华为一面
项目
- 实习项目
- 可优化的地方
- 专业
算法
- 复盘笔试题
华为二面
- 聊人生
- 对华为文化看法
- 家庭情况
- 专业情况
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
优秀开源项目:
- ali1024.coding.net/public/P7/Android/git
- github.com/android
结尾
最后,针对上面谈的内容,给大家推荐一个Android资料,应该对大家有用。
首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)
泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶
注解原理丶注解原理丶序列化
Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)
代码框架结构优化(数据结构丶排序算法丶设计模式)
APP性能优化(用户体验优化丶适配丶代码调优)
热修复丶热升级丶Hook技术丶IOC架构设计
NDK(c编程丶C++丶JNI丶LINUX)
如何提高开发效率?
MVC丶MVP丶MVVM
微信小程序
Hybrid
Flutter
接下来是资料清单:(敲黑板!!!)
1.数据结构和算法
2.设计模式
3.全套体系化高级架构视频;七大主流技术模块,视频+源码+笔记
4.面试专题资料包(怎么能少了一份全面的面试题总结呢~)
不论遇到什么困难,都不应该成为我们放弃的理由!共勉~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
mg-YOYHJPyz-1648080495359)]
接下来是资料清单:(敲黑板!!!)
1.数据结构和算法
[外链图片转存中…(img-PUxr4WIq-1648080495360)]
2.设计模式
[外链图片转存中…(img-MACc4Mt2-1648080495360)]
3.全套体系化高级架构视频;七大主流技术模块,视频+源码+笔记
[外链图片转存中…(img-t2HP6bGU-1648080495361)]
4.面试专题资料包(怎么能少了一份全面的面试题总结呢~)
[外链图片转存中…(img-a9IlFnVo-1648080495361)]
不论遇到什么困难,都不应该成为我们放弃的理由!共勉~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
[外链图片转存中…(img-jHdgQ8bT-1648080495362)]