前言
随着互联网行业的蓬勃发展,越来越多的Android开发程序员渴望加入大公司,以拓宽自己的视野和提升技术水平。对于两年经验的开发者来说,要通过头部互联网公司如美团的面试并不容易,不仅需要掌握扎实的基础知识,还需要在面试中展现出独到的思路和解决问题的能力。
背景介绍:
个人背景不详细多说,学历双非本科,不是应届生,工作年限不长,技术不是大牛,但也非小白,面经分享是想给正面试的同行一些建议和鼓励,希望能够多多支持。
其实在之前,我本人一直是十分反感学习面经的,因为总有一种考试前偷偷看参考答案的感觉,尤其是一些同学在看了面经以后直接把人家的回答加以修饰说成自己的经历,我对这种行为是嗤之以鼻的。
后来会去看面经,主要是两个原因吧,一是了解一下各个公司在面试的过程中可能会问什么样的问题、面试流程是怎么样的;二是学习许多面试大牛在回答问题时候的思维和逻辑。
一面:
面试官上来先自我介绍了一番,同时介绍了部门具体的工作业务是什么。
- 自我介绍
- 说一下用的第三方库
- handler和线程的关系
- 一个app可以有多个任务栈吗
- 项目中提到了OpenGL ES,顺着问了gles相关的内容
- 说说你对对象的理解
- 说下你对多态度的理解
- Android中多进程通信的方式有哪些?
- 能具体说说是怎么导致的死锁的吗?
- Binder有什么优势
- Binder是如何做到一次拷贝的
- 简述下Handler机制的总体原理
- 行业内常见的APP启动优化有哪些?
- tcp与udp差异
- 拥塞控制算法
- TLS加密过程
- https是否绝对安全
- 什么是文件系统文件系统的作用是什么?怎么起作用的
- 做题 把单向链表中的某个区间翻转。
二面:
开始问项目比较多,八股文基本不怎么问了
- 介绍项目。
- 深挖项目的里面提到的内容 包括负责的内容,使用的技术,使用的框架,遇到的问题,怎么解决,最后成果怎么样
- 因为我说我对C++和native比较熟悉,问了native相关的内容。native和java的代码有什么不同,运行速度,内存分布,以及为什么native比java层的快。
- 问了gles相关的内容,问图形学渲染流程
- 做题 把单项链表的后半部分翻转之后,将两部分链表交替重新连接。1 2 3 4 5变成 1 5 2 4 3.
三面:
开放式问题比较多,围绕他们的需求和你自己的项目来展开。
- 我做的项目是跟gles相关的,于是问了很多gles的问题。
- 怎么衡量一个图片的清晰度和质量 PSNR SSIM。PSNR高就一定好吗,这些属于QS指标,有没有QE指标?
- 一张bitmap占多少内存怎么算
- 你在项目中怎么优化bitmap内存占用的
- 视频超分怎么做 开放式讨论 包括服务端、传输、客户端、速度、质量、实时、非实施 基本上面试时间至少有一半在开放式讨论这个
- 重提了一下为什么在上次面试中说native跑得java快,原因是什么。
这次能够上岸还是要靠《Android核心面试题笔记》,它占我本次成功的80%还要多!!!
欢迎准备 Android面试以及学习 Android的同学来获取收藏学习,干货很多!
有需要的小伙伴,可以点击下方课程链接详细了解!!!
https://edu.51cto.com/course/32703.html
这套题总共分为三十二个模块,分别是:「Java 基础、集合、多线程、虚拟机、反射、泛型、并发编程、Android四大组件、异步任务和消息机制、UI绘制、性能调优、SDN、第三方框架、设计模式、Kotlin、计算机网络、系统启动流程、Binder、Handler、AMS、Dart、Flutter、算法和数据结构、NDK、H.264、H.265.音频编解码、FFmpeg、OpenMax、OpenCV、OpenGL ES」,如下图所示:同时,还给出一些常见问题的思考方式,以帮助读者在面试中更好地表达自己!
第一章 算法和数据结构面试题汇总
第二章 Java核心基础面试题汇总
第三章 Java深入泛型与注解面试题汇总
第四章 Java并发编程面试题汇总
第五章 Java虚拟机原理面试题汇总
第六章 Java反射类加载与动态代理面试题汇总
第七章 网络编程面试题汇总
第九章 高级UI面试题汇总
第十章 Framework内核解析面试题汇总
第十一章 Android组件内核面试题汇总
第十二章 程序性能优化与数据持久化面试题汇总
第十三章 开源框架面试题汇总
有需要的小伙伴,可以点击下方课程链接详细了解!!!
https://edu.51cto.com/course/32703.html