基本情况

2021届硕士生,Android开发岗

此文主要是2020年年初春招实习的面试和正式校招面试经验汇总,最终校招拿到了腾讯,百度,美团等offer

主要包括阿里4面,腾讯实习4面和校招4面,字节3面,百度3面,美团3面

阿里

阿里面试很喜欢问源码,优化,原理,涉及到的范围很广,还是具有一定挑战性的,以下包括阿里实习二面和校招二面,笔者都止步于二面,阿里可以去找找内推(笔者实习投递时笔试做的差,本来以为挂了,但可能因为找的内推所以还是给我面试了,后续又加了一轮笔试,校招时也是找的内推直接面试了没有笔试)。

阿里实习一面

源码:Handler消息机制(具体涉及到的类 & 细节);HashMap(数据结构 & put操作具体过程,扩容时间复杂度);ArrayMap原理

JVM:Java内存区域划分,堆栈的区别,哪些区域线程私有,哪些共享;栈帧,Java方法调用时的入栈出栈操作

并发访问:volatile原理及作用,是否具有原子性;synchronized:修饰代码块/方法/对象的区别?(单例模式DCL会不会失效?);Lock的原理

Android:Activity生命周期(具体执行过程,涉及到哪些类?);ANR(什么是ANR?怎么监测:运行前,运行后,线上监测?)

阿里实习二面

项目:项目使用人数,有无上架商店;有无IM通讯模块;登录模块是怎么解决的;如何让千万级别用户的APP用户实时知道自己状态(APP端 & 服务器端)

Java:synchronized修饰方法和类有什么区别;volatile关键字作用

JVM:内存分配;垃圾回收算法

Android:事件分发机制;消息机制(为什么Looper死循环没事?怎么实现线程间通讯?);操作系统层面死循环是怎么回事;死循环一定会导致ANR麽?;View绘制流程(具体原理,包括不限于绘制三大流程)

网络:HTTP缓存

阿里校招一面

Android:有没有遇到OOM问题,有没有遇到内存泄漏问题,怎么解决;Handler机制原理;ThreadLocal作用及原理;Activity启动到加载View过程;View绘制过程;OKHttp框架(1. 为什么选择它 2. 性能 3. 内部有哪些设计模式);EventBus框架

设计模式:用过哪些设计模式

实习:实习项目中遇到的难点

网络:HTTP & HTTPS区别

其他:为什么选择xx部门;参加的竞赛情况

阿里校招二面

项目:为什么选择OKHTTP框架;图片框架?(Glide);JSON解析框架?(Gson);怎么确定技术选型;项目APP页面个数;阿里云对象存储OSS上传凭证怎么设计缓存,怎么加密(加密算法有哪些?)

Android:Activity生命周期,启动透明Activity生命周期,按Home键后生命周期流程;后台杀死APP后怎么恢复数据;一个APP可以多进程吗;ListView和RecyclerView区别;RecyclerView卡顿怎么排查,RecyclerView怎么实现多Type,RecyclerView的ItemView层级过深怎么优化;Android多进程;怎么设计Android线程间通信;Handler机制,子线程可以用Handler吗?ANR原理?

Java:private protected public 关键字的用法区别;接口,抽象类区别,抽象类要不要实现接口的方法;Map的线程安全,读多写少选哪个集合;

网络:HTTP/HTTPS区别;TCP是什么,握手与挥手过程;长连接;服务器推送怎么实现。

腾讯

腾讯面试涉及到的范围也很广,甚至问到了C++,也具有一定挑战性的,以下包括腾讯实习四面和校招四面,最终拿到了测开岗位offer,腾讯面试过程中的感觉就是很多我不太熟悉的知识点都被问到了,甚至是不知道的知识点,但整体面试官给人的体验还不错,一般会提前打电话沟通面试时间。

腾讯实习提前批一面

Android:四大组件是什么,轮番介绍;Fragment是什么,与Activity区别;SurfaceView与View区别,SurfaceView原理;前台服务与后台服务区别;AIDL了解么;IPC方式有哪些,哪种方式最快;Protocol Buffer了解么;APP中多进程有什么用;方法数65536怎么解决;View显示过程

Java:线程同步方式;死锁是什么

JVM:内存分配方式;堆和栈的区别;GC算法,垃圾回收;class文件生成过程

计算机网络:什么是HTTP,HTTP/HTTPS区别;TCP三次握手 四次挥手过程;TCP/UDP区别;HTTP是长连接还是短连接;HTTP状态码;抓包工具,怎么抓包HTTPS

设计模式:生产者,消费者是什么;命令模式

数据结构:快排及时间复杂度多少;七大排序;二叉树原理;红黑树

腾讯实习提前批二面

C++:class与struct区别

项目:介绍项目,有什么难点;竞赛用了单片机,指令级是什么

Java:HashMap;ArrayList,LinkedList用法有什么要注意的;注解介绍下;泛型中类型擦除是什么

数据结构:线段树;B+树

Android:OkHttp,OkHttp使用需要注意什么;RxJava介绍下;Activity四种启动模式;一个APP怎么退出所有Activity,如果有第三方SDK Activity,又怎么退出

腾讯实习正式批一面

算法题:字符串中出现频率中位数;最长公共子串问题LCS

项目:OKHTTP框架

计算机网络:TCP UDP HTTP区别;TCP滑动窗口;用UDP实现TCP

数据库:三大范式;索引,怎么知道命中索引

操作系统:进程间通讯方式;共享内存原理

腾讯实习正式批二面

项目:项目介绍;内存泄漏

Android:OKHTTP 对HTTP与HTTPs之间的区别;HTTPs加密原理;BlueboothAdapter;Activity在AndroidManifest.xml文件中有哪些标志位,CLEAR_TOP模式,singleTop和singleTask分别的使用场景;Android存储(文件,SP,数据库[具体介绍下SQLite]);Android虚拟机与Java虚拟机之间区别

Java:深拷贝 浅拷贝(内存溢出or垃圾回收时有什么区别?);多线程模型

数据结构:二叉树;B树(插入/删除过程)

腾讯校招提前批一面

项目:项目介绍;项目实现的功能

网络:介绍下HTTP协议;HTTPS公钥暴露怎么办;HTTP分段上传文件怎么保证正确;HTTP缓存

Java:进程 线程区别;子线程间通讯;解决死锁的办法,怎么判断发生死锁

算法题:数组重新排序保证奇数偶数顺序不变,最终使所有奇数在前,偶数在后;2数/3数之和

腾讯校招提前批二面

项目:项目梳理;图片压缩算法;Bitmap JPG区别;断点重传,怎么动态确定范围;断点下载;CRC原理

设计模式:MVC优点缺点;MVP中的MVC的C实现在哪;单例模式的饿汉与懒汉的选择,使用场景

网络:HTTPS加密方式

腾讯校招正式批测开一面

Android:Crash,ANR怎么解决

数据结构:设计世界杯32强对战数据结构

益智题:2个球,一共100楼找到哪一层扔下来球刚好会坏

其余:介绍测开具体工作

腾讯校招正式批测开二面

项目:聊细节

Android:图片,语音大内存数据的性能排查,定位;Handler内存泄漏问题;ART Dalvik区别;GC机制;CountDownLatch原理

算法题:不使用循环,大于号,小于号等查找数组中最大值

闲聊:自我优势

字节

字节面试比较注重基础,包括在线写题,数据结构,Java基础,JVM基础,操作系统等;以下包括实习3面;字节实习面试是一天内走完所有技术面试流程,每一面结束后如果通过则15min左右就开始下一轮面试,全部为视频面试。

字节实习一面

项目:介绍项目

Java:深拷贝/浅拷贝,怎么实现深-浅拷贝,CopyonWrite;Java内存(分配->回收的详细过程)

网络:TCP挥手,第三次不挥手会怎么样;HTTPs加密的解释,对称/非对称加密

算法:数组A,数组B,计算A-B;0-n之间所有质数(可以先求所有合数)

字节实习二面

Java:线程同步问题(为什么需要同步&怎么实现同步)

设计模式:单例模式(静态内部类);其他设计模式简介

数据结构:排序算法,归并/快排(实现原理/平均复杂度/能否提前结束/谁性能更优), 堆排(怎么实现调整堆结构/k个最大的数);

算法题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组

字节实习三面

自我介绍:学过的专业课程;看过哪些计算机专业书

操作系统:内存分配区域(Java层面回答,对象引用在堆和栈都有么?函数内部new的对象存放在哪?);用户态/内核态;中断是什么

网络:计算机网络有哪几层,分别对应什么协议;IP/TCP传输的都是什么数据;DNS是什么,有什么作用;

百度

百度是现场面试,一共三面没有HR面,第三面是总监面,兼顾技术面与非技术面试,百度的面试官都比较友好,一面技术问的比较细,二面重项目,三面是聊天居多。

百度校招一面

项目:项目介绍;项目中的编码规范

Android:Android四大组件安全性;Activity启动模式;IntentFilter匹配规则,action和category区别;Handler阻塞为什么不卡死;事件分发机制,onTouchEvent返回false处理流程, dispatchTouchEvent返回false处理流程;Looper是什么;对象池,手写对象池实现;ContentProvider原理;sp支持跨进程么,怎么解决跨进程,怎么实现进程同步;帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿;Bitmap内存复用限制条件

操作系统:线程时间片分配原理

百度校招二面

项目:梳理项目;项目难点;项目中技术框架

算法题:手写二分法;电梯状态机设计

其他:优缺点;专业

百度校招三面

算法题:最长公共子串

Android:ART虚拟机类加载机制;okhttp原理;热修复原理

其余闲聊:优点缺点;大学遗憾;作为班长组织了哪些活动;长期坚持的事情;专业去向

美团

美团面试是现场一天面完,技术面试一共两轮,最后有一轮HR面试,回忆起来似乎问的问题不是特别多,但都比较开放,聊的比较深入,技术一面直接打开美团APP聊相关页面设计实现,这种方式还是比较新颖的,二面则是聊项目比较多,问很多项目中具体实现细节。

项目:实习项目;项目最难点;项目中技术选择;阿里云对象存储OSS的STS凭证设计

Android:Lint工具是编译期的吗,原理;美团首页设计具体实现;RecyclerView多Item的难点;

设计模式:MVP MVVM使用场景

HR:现在有什么offer;选择offer依据;聊一聊怎么解决公司内沟通问题

面试心得

面试首先一般都会有个自我介绍,可以事先准备下1-2min的自我介绍
Android岗位面试内容较广,需要做到各方面知识都要了解,在了解的基础上不断深耕
现场面试的体验一般优于电话or视频面试,因为面对面交流更有效清晰
至少做一个拿的出手的项目,一是面试时可以聊起来,二是简历有干货,三是通过做项目可以熟悉那些开源工具
Android岗位一般算法题要求不高,刷完《剑指offer》大部分就能应对了

作者:Hengtao24
链接:https://www.jianshu.com/p/7a8a10f541c8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

墙裂推荐!2020Android阿里&腾讯&百度&字节&美团校招面试汇总的更多相关文章

  1. 2019Android阿里&腾讯&百度&字节面试汇总(附面试题总结、Android书单)

    1.基本情况 先简单说说我今年的面试经历吧,本人2018届211软件工程硕士生,Android开发岗.此文主要是2019年年初春招的面试和秋招面试经验汇总,最终拿到了阿里,腾讯,字节跳动,百度等off ...

  2. 墙裂推荐4款js网页烟花特效

    以下是几款网页特效和一款软件: http://keleyi.com/keleyi/phtml/jstexiao/1.htm  http://keleyi.com/keleyi/phtml/jstexi ...

  3. Docker最全教程之Go实战,墙裂推荐(十八)

    前言 与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛低.本篇主要侧重于讲解了Go语言的优 ...

  4. 墙裂推荐一波mysql学习资源

    在日常工作与学习中,无论是开发.运维.测试,还是架构师,数据库是一门必不可少的"必修课", 也是必备的涨薪神器.在互联网公司中,开源数据库用得比较多的当属 MySQL 了. 但my ...

  5. 如何从零开始参与 Apache 顶级开源项目?| 墙裂推荐

    ​ 写在开头 从 2021 开始,有一个很有意思的说法经常在各大技术媒体或开源论坛中出现,「开源正在吞噬一切」.不论是否言过其实,从一个行业从业者的切身感知来看,开源确实从少数极客的小众文化成为主流的 ...

  6. 墙裂推荐一本案例驱动的PhoneGap入门书,早看早收货

    清华大学出版社推出的<构建跨平台APP:PhoneGap移动应用实战> 零门槛学APP开发 从无到有 循序渐进 20余个示例APP 3个项目APP 全平台à跨终端à移动开发 完美生命周期: ...

  7. 【墙裂推荐】大学生如何学习WEB开发

    每天网络上有上万条Web招聘职位,招聘要求很简单: 会JavaScript,会CSS,能开发网页,能设计网页. 但我们真正面试时才发现:都是些很小很小的知识点! 我们没有实践过,没有碰到过,头脑一片茫 ...

  8. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  9. centos7用xshell可以连接, xftp连接失败!(墙裂推荐)

    环境: vultr vps搭建的是centos7  毛病: xshell可以连接, 打开xftp配置好连接却连接失败如下图: 然后开始设置ssh的配置文件vim /etc/ssh/sshd_confi ...

随机推荐

  1. eclipse语言怎么设置为中文

    2021-05-30 方法:1.查找语言包下载网址,并复制:2.打开eclipse,点击"help"-"Install New Software"-" ...

  2. Redis的flushall/flushdb误操作

    Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的.怎么才能快速恢复数据,让损失达到最小呢? 假设进行fl ...

  3. gitlab 设置分支保护功能及取消分支保护

      使用gitlab管理员账户登录gitlab系统 进入需要分支保护的项目 进行分支保护设置 保护开发分支策略配置 保护RC送测库分支策略配置 调整分支保护策略 效果展示 取消分支保护 效果展示

  4. 生产环境部署Django项目

    生产环境部署Django项目 1.  部署架构 IP地址 安装服务 172.16.1.251 nginx uwsgi(sock方式) docker mysql5.7 redis5 Nginx 前端We ...

  5. 2018-10-14普及模拟赛」Hash 键值 (hash)

    今天,带大家看一看一道思维题... Hash 键值 (hash) 题目描述 Marser沉迷hash无法自拔,然而他发现自己记不住hash键值了-- Marser使用的hash函数是一个单纯的取模运算 ...

  6. Jquery 插件 chosen_v1.8.7 下拉复选框带搜索功能

    地址:https://harvesthq.github.io/chosen/ 效果: 因为只需要这个功能,就只研究这个功能了,代码: <!doctype html> <html la ...

  7. solidity基础知识

    1.solidity是一种语法类似JavaScript的高级语言,它被设计成以编译的方式生成以太坊虚拟机代码.在后续的内容中你将会发现,使用它很容易创建用于投票.众筹.封闭拍卖.多重签名钱包等等的合约 ...

  8. SpringCloud 微服务最佳开发实践

    Maven规范 所有项目必须要有一个统一的parent模块 所有微服务工程都依赖这个parent,parent用于管理依赖版本,maven仓库,jar版本的统一升级维护 在parent下层可以有 co ...

  9. CentOS7 安装搭建docker环境

    一.Docker简介 Docker 版本 :版本分为:社区版CE  企业版EE 社区版分为stable和edge俩种发行方式: stable版本:是季度版发行(三月一更新) edge版本:是月度版发行 ...

  10. SpringBoot统一处理返回结果和异常情况

    如果文章有帮助到你,还请点个赞或留下评论 原因 在springboot项目里我们希望接口返回的数据包含至少三个属性: code:请求接口的返回码,成功或者异常等返回编码,例如定义请求成功. messa ...