2019Android阿里&腾讯&百度&字节面试汇总(附面试题总结、Android书单)
1、基本情况
先简单说说我今年的面试经历吧,本人2018届211软件工程硕士生,Android开发岗。此文主要是2019年年初春招的面试和秋招面试经验汇总,最终拿到了阿里,腾讯,字节跳动,百度等offer。
以下的部分有具体的面试经历,也有自己的一些总结面试必备技能和自己的一些感想。
在这面试刷题过程中我搜集整理了全套移动互联网开发面试题(精编含解析),以及备战面试所需电子书、面试视频等资料。 这份面试文档主要包括Android基础面试题、Android高级面试题、移动互联网开发Java面试题、移动互联网开发Flutter面试题、以及2019大厂Android面试题。
电子书主要包括《Java核心技术》、《Java并发编程的艺术》、《深入理解Java虚拟机》、《Android开发艺术探索》、《Android源码设计模式》、《Android进阶之光》、《Android Gradle权威指南》、《大话数据结构》、《剑指offer》、《操作系统概念》、《图解HTTP》分享出来。点击我 前往免费领取。话不多说,我们先看面试经历。
2、阿里面试
阿里面试很喜欢问源码,优化,原理,涉及到的范围很广,还是具有一定挑战性的。这里提炼了一下阿里四面的核心面试题。
项目:项目立意谈起,到设计,再到详细的技术实现,可谓是面面俱到,遇到什么问题
算法:c语言程序,return0 就退出了,为什么你写的andriod app 一行一行代码执行了不会退出
设计模式:用过哪些设计模式
Android:对Android什么地方最熟悉,有没有遇到OOM问题,有没有遇到内存泄漏问题,怎么解决;Handler机制原理;ThreadLocal作用及原理;Activity启动到加载View过程;View绘制过程;OKHttp框架(1. 为什么选择它 2. 性能 3. 内部有哪些设计模式);EventBus框架;动画框架的源码
Java:private protected public 关键字的用法区别;接口,抽象类区别,抽象类要不要实现接口的方法;Map的线程安全,读多写少选哪个集合;bitmap存储的位置 安卓几个版本有什么不同;jvm分区 栈溢出是什么 栈里面存了什么
网络:HTTP/HTTPS区别;TCP是什么,TCPUDP区别;握手与挥手过程;三次握手 第二个包丢了会咋样;长连接;服务器推送怎么实现。
3、腾讯面试
腾讯面试涉及到的范围也很广,甚至问到了C++、Kotlin +Flutter ,也具有一定挑战性的,以下包括腾讯腾讯安卓客户端三面,最终拿到了测开岗位offer,腾讯面试过程中的感觉就是很多我不太熟悉的知识点都被问到了,甚至是不知道的知识点,但整体面试官给人的体验还不错,一般会提前打电话沟通面试时间。
C++:class与struct区别
项目:介绍项目,有什么难点;
Java:HashMap;ArrayList,LinkedList用法有什么要注意的;注解介绍下;泛型中类型擦除是什么
算法&数据结构:字符串中出现频率中位数;最长公共子串问题LCS;线段树;B+树;快排及时间复杂度多少;七大排序;二叉树原理;红黑树
Android:OkHttp,OkHttp使用需要注意什么;RxJava介绍下;Activity四种启动模式;一个APP怎么退出所有Activity,如果有第三方SDK Activity,又怎么退出;EventBus原理;app卡顿;
Kotlin :协程
Flutter :生命周期
4、字节跳动面试
字节面试比较注重基础,尤其是算法。包括在线写题,数据结构,Java基础,JVM基础,操作系统等;以下包括实习3面;字节面试是一天内走完所有技术面试流程,每一面结束后如果通过则15min左右就开始下一轮面试,全部为视频面试。
项目:介绍项目
Java:线程同步问题(为什么需要同步&怎么实现同步);泛型;上界通配符和下界通配符;
设计模式:单例模式(静态内部类);其他设计模式简介
数据结构:排序算法,归并/快排(实现原理/平均复杂度/能否提前结束/谁性能更优), 堆排(怎么实现调整堆结构/k个最大的数);
算法题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组;Top K度算法题,给定一个数组,求前n个最大的数,堆排序; 判断一个view的父类或者父父类是否为listview
5、 百度
百度是现场面试,一共三面没有HR面,第三面是总监面,兼顾技术面与非技术面试,百度的面试官都非常友好,一面技术问的比较细,二面重项目,三面考察人际交往、沟通、管理能力。
项目:项目介绍;项目中的编码规范
Android:Android四大组件安全性;Activity的生命周期通过什么机制来通知;IntentFilter匹配规则,action和category区别;Handler阻塞为什么不卡死;事件分发机制,onTouchEvent返回false处理流程, dispatchTouchEvent返回false处理流程;Looper是什么;对象池,手写对象池实现;ContentProvider原理;sp支持跨进程么,怎么解决跨进程,怎么实现进程同步;以100ms/张的间隔时间播放100张图片,且每张图片需要400ms进行加载,如何设计;Bitmap内存复用限制条件;内存泄漏;
操作系统:线程时间片分配原理
算法:如何在无序数组中快速找到最小值(手撕二分查找算法)
6、总结
6.1、 高频面试题总结
以下是本人从这些大厂提炼的Android高频面试点总结:临阵磨枪,不快也光。
- Android四大组件,Activity生命周期,Fragment
- Handler,Looper,ThreadLocal,事件分发机制,View绘制过程,Activity启动过程
- 内存泄漏,OOM,图片加载,ANR,ART与Dalvik虚拟机
- 多线程,多进程,死锁
- HTTP、HTTPS、TCP、UDP
- HashMap及其余Java集合 内存分配,回收算法,GC,堆栈区别,类加载机制
- volatile,synchronized,Lock
- MVC,MVP,MVVM,单例模式,观察者模式
2019Android基础面试题目录2019Android高级面试题目录2019Java面试题目录2019Flutter面试题目录2019大厂Android面试题目录
上述高频面试点全部都已经整理到了这份349页全套Android面试文档(含答案解析)里了,该文档还涵盖了Android初级、高级、Java面试题、Flutter面试题、2019大厂Android面试题总结。上述面试题集锦均是我从网上搜集下载而来,并进行了补充、修改和整理。正式因为平时养成了记录总结的良好习惯,自己也因此受益匪浅。很多朋友的资料库都比较凌乱,包括我曾经也是如此,找资料、找面试题都要花费很长时间。今天我把这份面试文档分享出来,希望能帮助到有需要的朋友,点击我 前往免费领取
6.2、 面试心得
面试首先一般都会有个自我介绍,可以事先准备下1-2min的自我介绍,不用过于拘束,也不用过于复杂,简单介绍,名字,年龄,毕业于哪,几年工作经验,也可诉说自己擅长哪方面技术,当然了除了工作之外,不妨加上自己还学习什么,有没有成果展示,这块主要体现自己的学习能力。比如可以说,除了工作之外,自己还自学了前端,并运用学到的技术,做了一个网站。
Android岗位面试内容较广,需要做到各方面知识都要了解,在了解的基础上不断深耕。 现场面试的体验一般优于电话or视频面试,因为面对面交流更有效清晰。 至少做一个拿的出手的项目,一是面试时可以聊起来,二是简历有干货,三是通过做项目可以熟悉那些开源工具 Android岗位一般算法题要求不高,刷完《剑指offer》大部分就能应对了。
6.3、 建议
主要针对非科班同学:最好系统的看下操作系统和计算机组成原理,推荐清华大学陈渝的操作系统公开课,因为看完操作系统后才能系统的认识计算机的原理,能更好的从底层去认识上层 多看源码,包括Java层的代码在JVM中的实现源码(如synchronized的实现源码),Android Framework的源码(更好认识Android层的实现),Android开源库源码(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson等等,更好的学习优秀开源库源码,做到用的熟,懂原理) 多问自己为什么,比如两个技术点优缺点分别在哪,各自的使用场景(如单例模式下饿汉与懒汉的优缺点,使用场景),这样才能更契合实际应用开发,针对不同场景使用不同技术点 及时复盘总结面试中遇到的问题,分为两方面,一是知道但不能深入的,这种需要继续多看多总结,另一种是没接触过的,这种可以先了解下,万一面试又遇到了,可以回答下了解到的,之后再去深入总结(毕竟时间有限,不可能面面俱到,只能不断学习总结)
6.4、 资源
学习自然少不了书籍、市面上的书籍也是琳琅满目,书籍的筛选也需要花时间,资料的搜集整理更是如此,我整理好了这份Java书单、Android书单、算法书单、操作系统书单、计算机网络书单,以下书单均可分享给读者点击我 前往免费领取。
6.4.1、 Java书单
《Java核心技术》:Java基础知识
Java核心技术PDF
《Java并发编程的艺术》:并发知识集合 《Java并发编程的艺术》读书摘抄
Java并发编程的艺术PDF
《深入理解Java虚拟机》:虚拟机知识集合
深入理解Java虚拟机PDF
6.4.2、 Android书单
《Android开发艺术探索》:Android四大组件原理,部分Framework源码,图片高性能加载,多进程Binder原理等等
Android开发艺术探索PDF
《Android源码设计模式》:设计模式,Android源码中采用的设计模式;MVC,MVP,MVVM
Android源码设计模式PDF
《Android进阶之光》:各种Android开源框架源码解析
Android进阶之光PDF
《Android高级进阶》:Android系统启动流程,Activity启动流程,JNI,ART虚拟机,热修复,插件化等原理
Android高级进阶PDF
《Android Gradle权威指南》:了解Gradle原理
Android Gradle权威指南PDF
6.4.3、 算法书单
《大话数据结构》:基本讲了常见数据结构,且图文丰富,清晰易懂
大话数据结构PDF
《剑指offer》:刷题
剑指offer PDF
程序员代码面试指南 IT名企算法与数据结构题目最优解 ,左程云著
程序员代码面试指南PDF
6.4.4、 操作系统书单
《操作系统概念》:操作系统基础概念
操作系统概念PDF
6.4.5、计算机网络
《图解HTTP》:图文丰富,简单易懂介绍HTTP协议
图解HTTP PDF
上述电子书集锦,均可免费分享,点击Android相关电子书 前往领取
分享不易,动动大拇指给个鼓励的赞呗--<-<-<@
2019Android阿里&腾讯&百度&字节面试汇总(附面试题总结、Android书单)的更多相关文章
- 墙裂推荐!2020Android阿里&腾讯&百度&字节&美团校招面试汇总
基本情况 2021届硕士生,Android开发岗 此文主要是2020年年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团等offer 主要包括阿里4面,腾讯实习4面和校招4面,字 ...
- 春招后端阿里腾讯字节美团Offer拿来吧你,面试经验分享
近期很多童鞋在准备校招了,找了蚂蚁的一位童鞋,给大家分享一波面试经验,以及面试心得,希望能帮大家在秋招拿到一个好结果 我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下面试的一些心得 ...
- 多次面试被拒,‘宅家苦修’30天,终获美团offer(含字节跳动/阿里/腾讯等大厂面试题整理)
背景:双非渣本. 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路, ...
- 双非本科拿到阿里腾讯字节,分享Java后端路线
前言 最近有很多小师妹来问我. 师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~ 既然小师妹都这么问了,那我在这篇就如实回答她 ...
- 我把阿里、腾讯、字节跳动、美团等Android性能优化实战整合成了一个PDF文档
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS. 但是,到了各大厂商手 ...
- 记2016腾讯 TST 校招面试经历,电面、笔试写代码、技术面、hr面,共5轮
(出处:http://www.cnblogs.com/linguanh/) 前序: 距离 2016 腾讯 TST 校招面试结束已经5天了,3月27日至今,目前还在等待消息.从投简历到两轮电面,再到被 ...
- 面试汇总——知道什么是同源策略吗?那怎么解决跨域问题?知道 JSONP 原理吗?
本文是面试汇总分支——知道什么是同源策略吗?那怎么解决跨域问题?知道 JSONP 原理吗?. 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能, ...
- 支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网
支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网 支付宝开通海外退税 阿里腾讯暗战跨境O2O
- 你不知道的腾讯社招面试经验(已offer)
# 你不知道的腾讯社招面试经验(已offer) ## 背景 最近一段时间换工作,成功获得了腾讯的offer.在这里有点经验跟大家分享,我觉得,比起具体的面试题,有些东西更加重要,你知道这些东西,再去准 ...
随机推荐
- JavaScript ES6 Promise对象
说明 Node.js中,以异步(Async)回调著称,使用了异步,提高了程序的执行效率,但是,代码可读性较差的. 假如有几个异步操作,后一个操作需要前一个操作的执行完毕之后返回的数据才能执行下去,如果 ...
- CtfStudying之SSH私钥泄露
8/23/19 SSH私钥泄露 对于只是给定一个对应ip地址的靶场机器,我们需要对其进行扫描,探测其开放服务.我原来理解的渗透就是找到目标的漏洞,然后利用这些(这种)漏洞,最后拿到机器的最高权限:其实 ...
- Maya2014下载安装与激活
目录 1. 更多推荐 2. 下载地址 2.1. OneDrive 2.2. 其他下载地址 3. 激活步骤 1. 更多推荐 其他Maya版本的下载与激活:https://www.cnblogs.com/ ...
- 学Python的第八天
最近因为很多生活琐事+生病+培训耽误了好几天的学习,不过幸好身体feel fly!! 今天依旧是爱Python的一天-.- 前几天以及今天所列出来的Python魔法类型不需要死记硬背熬.... #!/ ...
- 封装操作mysql、redis
封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...
- 切面AOP的切点@Pointcut用法
格式: execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern ...
- windowserver 常用命令
1.查看端口占用: netstat -ano | findstr "服务端口号"2.查看程序运行id: tasklist | findstr nginx 3.杀死进程 tskk ...
- bzoj2402 陶陶的难题II 分数规划+树剖+线段树维护凸壳+二分
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2402 题解 看上去很像分数规划的模型.于是就二分吧.令 \[ \begin{align*}\f ...
- div 上禁止复制的css实现方法
div { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-se ...
- spring mvc中的@Entity是什么意思?
@Entitypublic Class JavaBean{}标注该类为实体类.