2019 年 Android- 非科班硕士的阿里 & 腾讯 & 字节 & 爱奇艺 & 网易 & 华为实习面试大汇总分享
面经+复习体系分享
基本情况
2019 届硕士,非科班,Android 客户端方向
接触 Android 是因为参加电子设计比赛,还有课程设计项目需要
此贴主要是 2019 年年初春招实习的面试总结,最后去了华为实习
主要包括阿里 2 面,腾讯 4 面,字节 3 面,爱奇艺 3 面,网易游戏 3 面,华为 2 面
阿里
阿里简历面(阿里笔试做的比较差) 50min
自我介绍
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?
设计模式
生产者,消费者是什么?
命令模式是什么?
数据结构
快排是什么?时间复杂度多少?
七大排序分别是什么?
二叉树原理?
红黑树是什么?
最近面试被怼了?缺面试题刷提升自己吗?
点击:
[Android 学习 PDF+架构视频+面试文档+源码笔记](
)
来获取学习资料提升自己去挑战一下 BAT 面试难关吧
提前批二面 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 的对象存放在哪?)
用户态/内核态
中断
评论