【备战金三银四】四年Android 开发大厂面试经验分享.....

45 篇文章 0 订阅
37 篇文章 0 订阅

概述

感觉毕业后时间过得真快啊,从 17 年 7 月本科毕业入职后,到现在快四年了,最近金三银四期间想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,最近基本上差不多了,把部分大厂的面试经验分享给大家,祝想找工作的同学都能去自己心仪的公司!

A公司一面(1.5h)

  • 自我介绍
  • Android 生命周期中 onStart 里面干了啥?
  • 介绍一下 Activity 的四种启动模式
  • android:style 和 android:theme 的区别
  • http 和 https 的区别,http 组成,http 请求的整个过程
  • 动画种类及其工作原理
  • 线程启动方式,线程池原理清楚不?
  • 讲讲 IntentService
  • 知道哪些 Jetpack 组件?挑一两个讲讲原理
  • 有哪些 ipc 方式
  • Sp 怎么支持跨进程?
  • Binder 原理流程介绍一下
  • window, view, activity 关系
  • 软硬件绘制区别,性能比较,具体绘制任务(如复杂动画)怎么选择?
  • 性能优化方式讲一讲
  • 查找算法有哪些?手写二分查找
  • 了解哪些跨平台方案?

A公司二面(1h)

  • 自我介绍
  • 主要是抠实际项目,然后从中引出一些问题

B公司一面(1h)

  • 自我介绍
  • 问项目的一些细节,优化方案等
  • SurfaceView, TextureView及View的区别。SurfaceView怎么控制它处于的层级
  • Binder工作流程
  • 介绍一下MVC,MVP,MVVM,你们项目用的是哪个?
  • 对组件化的理解,你们是怎么实现组件化的?功能模块之间互相引用会有什么问题?
  • 内存优化工具,LeakCanary和MAT的原理
  • JVM内存模型
  • Java同步机制有哪些,volatile和syncronized区别
  • HashMap和HashTable区别,ConcurrentHashMap分段加锁的原理
  • 二叉树的前中后遍历
  • 算法:判断一棵树是否是平衡二叉树
  • 算法题:给定一个链表L1、L2,每个元素是为10以内的正整数,链表表示一个数字,表头为高位。求两个链表之差,以链表形式返回
  • Java和Kotlin的一些区别,Kotlin的缺点?
  • SurfaceView和TextureView的区别?
  • 了解过哪些插件化的实现?
  • 说说ARouter的原理
  • 两个业务组件模块之间,怎么实现相互调用接口?
  • 让你设计一个下载功能,实现多个大文件同时下载,考虑哪些(断点续传)?
  • 有没有音视频开发经验?
  • 怎么处理内存泄漏?强引用弱引用?LeakCanary原理说一下。

B公司二面(1h)

  • 问更熟悉Java还是Kotlin,答Java,所以问的都是Java相关的一些题
  • HashMap扩容机制
  • Java volatile原理和作用
  • 乐观锁,悲观锁区别
  • 线程池工作原理,各个参数的作用
  • Android 三缓存是什么?为什么需要它
  • 讲讲做的业务开发中比较有挑战的项目
  • 还有一些比较常规的Android方面的问题,具体想不起来了
  • 算法题:查找单链表中倒数第k个节点。做完后面试官问是不是刷过这道题,那我再出一道吧…
    题:给定一台8核的手机,设计一个快速检索出sdcard下所有文件名为a的程序,返回一个列表

B公司三面(1.5h)

  • 主要深挖项目细节,有些不太清楚的最好别提,不然被挖到了很尴尬
  • 平时怎么学习技术
  • 在之前的公司,你对自己的成长满意吗
  • 在面哪些公司,情况怎么样

C公司一面(1.5h)

不记得了。。
算法题:给定一个排好序的数组,找出最左边的某个指定数字的下标。

C公司二面(40min)

  • 介绍项目,问一些细节。
  • 你认为Java和Kotlin的不同点,在编程范式角度再介绍一下区别?Java的lamda和Kotlin函数对象区别?
  • Kotlin协程为什么能以同步代码写出异步逻辑?
  • 在协程上定义了一个局部变量,为什么在其中的其他线程里的协程也能访问到?
  • JetPack Compose有了解过没?
  • 性能优化;ConstraintLayout为什么效果好?为什么多了层级,性能可能会差很多?

C公司三面(1h)

  • 依旧是项目细节,三面比较长的时间都是项目
  • 为什么要离职,家是哪里的之类的问题

D公司一面(45min)

  • 主要聊项目细节
  • 线程池运行流程,你们平时怎么使用线程池?一个线程池够吗?
  • 觉得工作经验不长,说当应届生面的,要求低。。。

D公司二面(1h)

  • 自我介绍
  • 不知道为啥,跳过了第二轮技术面,直接来了 leader 面。聊人生,聊性格,聊成才和氛围比薪资重要等等
  • 没有技术问题

一些总结

毕业时选择的是一家非一线大厂的公司,在这边工作的近两年时间里,业余学习了许多 Android 相关的专业知识(因为不忙),但是由于业务原因,且公司发展一直在走下坡路,我在项目上的经验比较欠缺,因此考虑进一家大厂继续磨练磨练自己。

这次面试也暴露出了我的一些问题,最主要的话还是业务项目经验上不太足,所幸面试到的公司基本上都通过了,可能是因为我在 Android 基础上还可以吧。面试也是一种能够快速地发现自己缺点与不足的方法,可以更好地提高自己。

「关于算法题」:个人感觉有些八股了,也比较讨厌刷题,只写了剑指offer和leetcode上hot前百中所有easy难度的题,以及几道中等题,总共估计不超过100道吧。。。面试的时候感觉算法题这块都不是很难,大概也许可能是运气好呗。

另外就是可以自己搞一些比较有亮点的地方,我的话是对 Android 图形系统这块比较熟悉,所以上面面试中有一些都涉及到了这个,像Surface这些,如果面试官也比较懂这块知识的话,可以聊的很开心。

为了更好地帮助大家进行学习,在这里给大家分享一份BAT大佬整理总结出来的《2022中高级Android面试题汇总》,里面包含了所有Android面试的知识点,可以全面的进行知识补给。这份资料包含了Java和Android两大部分,由于篇幅原因,这里只展示部分知识点,有需要的朋友文末有免费领取方式。

第一章 Java基础

  • 静态内部类和非静态内部类的比较
  • 多态的理解与应用
  • java方法的多态性理解
  • java中接口和继承的区别
  • 线程池的好处,详解,单例(绝对好记)
  • 线程池的优点及其原理
  • 线程池的优点(重点)
  • 为什么不推荐通过Executors直接创建线程池
  • 不怕难之BlockingQueue及其实现
  • 深入理解ReentrantLock与Condition
  • Java多线程:线程间通信之Lock
  • Synchronized 关键字原理
  • ReentrantLock原理
  • HashMap中的Hash冲突解决和扩容机制
  • JVM常见面试题
  • JVM内存结构
    在这里插入图片描述

第二章 Android基础

  • Activity知识点(必问)
  • Fragment知识点
  • Service知识点
  • Intent知识点
    在这里插入图片描述

第三章 UI控件篇

  • 屏幕适配
  • 主要控件优化
  • 事件分发与嵌套滚动
    在这里插入图片描述

第四章 网络通信篇

  • 网络协议
    在这里插入图片描述

第五章 架构设计篇

  • MVP架构设计
  • 组件化架构
    在这里插入图片描述

第六章 性能优化篇

  • 启动优化
  • 内存优化
  • 绘制优化
  • 安装包优化
    在这里插入图片描述

第七章 源码流程篇

  • 开源库源码分析
  • Glide源码分析
  • Android面试题:Glide
  • day 20 面试题:Glide面试题
  • 聊一聊关于Glide在面试中的那些事
  • 面试官:简历上如果写Glide,请注意以下几点…
  • Glide OOM问题解决方法汇总
  • OkHttp源码分析
  • Okhttp连接池复用机制
  • Okhttp 流程和优化的实现
  • 一篇让你受用的okhttp分析
  • OkHttp面试之–OkHttp的整个异步请求流
  • OkHttp面试之–HttpEngine中的sendRequest方法详解
  • OkHttp解析大总结
  • Okhttp任务队列工作原理
  • Android高频面试专题 - 架构篇(二)okhttp面试必知必会
  • Android 网络优化,使用 HTTPDNS优化 DNS,从原理到 OkHttp 集成
  • Retrofit源码分析
  • RxJava源码分析
  • RxJava原理与源码分析
    在这里插入图片描述

第八章 新技术篇

  • 实战问题篇
    在这里插入图片描述

第九章 面试篇

  • 开源文档
  • 面试题合集
    在这里插入图片描述

这份完整版的学习资料已经上传CSDN ,朋友们如果需要可以微信扫描下方CSDN官方认证二维码[保证100%免费获取]。

请添加图片描述

总结

最后的话就是 Android, Java, Kotlin 中一些常问的知识点了,这种就跟考试一样,有些东西可能有些八股味儿,不过还是得准备准备,其实也不用花太多时间,最主要的积累过程,都在于日常的工作和学习中。

好了,暂时只能想到这些,后面如有想到其它东西再补充哈,祝想找工作的同学都能去自己心仪的公司,前程似锦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值