2023金九银十,收获小米,今日头条等Android岗offer

在这里插入图片描述

前言

时代淘汰你,有时候真的是连招呼都不打。

前两年,我们经历了新冠疫情的洗礼,疫情放开后本以为会迎来春风,结果失业浪潮一波一波的。

最近北京的一个朋友也是面试了几家大厂,也拿到了offer,就问了他的面试经过分享出来。

面试分享

第一家是线上面试的科大讯飞,聊的还不错,不过薪资达不到要求就放弃了。

科大讯飞:

  • 主线程给子线程发送消息,handler、threadlocal、threadlocalmap、thread之间是怎么联系的

  • glide的结构设计、btimap的复用和系统的复用比较,有什么优点?与生命周期的绑定

  • 自定义view测量、布局、绘制,有没有做过复杂的自定义view,举个例子

  • 一个scrollview里有个button,button有点击事件,列表可滑动,怎么去做事件分发的

  • 项目架构设计、mvp的实现、model里的请求分页怎么实现?

  • 视频播放器、exoplay的优缺点,ijkplay的优缺点

  • handler原理,主线程发送message给子线程

  • recyclerview列表的优化

  • 自定义view,onmeasure的如何测量,测量模式起什么作用?

  • 大图片如何处理?

  • sp支持多进程吗?多线程呢?

  • 数据库读写在同一个线程吗?

  • 一个文本文件中每行有一个手机号或电话号,给定一个手机号,判断该文件中是否存在。给出时间复杂度较低的方案。

小米:

接下来去的是小米公司,位于北京海淀区的一个小区。进入公司内部,整体的装修风格比较年轻化,有着小米一贯的科技气息。每个楼层都有开放式的办公区域,员工可以自由选择在这里办公或者休息。在面试时,面试官非常亲切,不仅询问了我的Android技术方面的知识和项目经验,还与我分享了一些在小米工作的经验和心得。

  • handler、massage、massager、Loop之间的关系和区别
  • view的绘制和事件分发,Android的绘制机制?布局的绘制流程?
  • Activity在oncreate中finish,生命周期是怎样的?
  • Glide、okhhtp、retrofit等三方库的原理,简单阐述
  • 视频播放器封装、弹幕的实现,自己项目的结构和路由框架、新闻列表的实现、mpv的实现等
  • android内存泄露有哪些?怎么处理?handler为什么会发生内存泄露?它的gcRoot是什么?强软弱虚引用哪些可以解决内存泄露?为什么?
  • 一个view上每秒显示一个数字,每隔一秒改变一次,想出解决办法,越多越好 代码健壮性和质量怎么控制?appbug怎么统计的?怎么处理的?
  • 一个string值传入方法,值改变吗?换成stringbuild呢?
  • Java垃圾回收、分代算法的原理,如何判定对象死亡?gcRoot有哪些?Java内存模型,哪些区可以作为gcRoot?内存怎么释放?线程的工作内存放在哪?强软弱虚四种引用的区别?
  • 给定数组-1,0,1,0,-1,-4,0找出其中3个数相加为0的全部组合,给出解决方案
  • 判断单链表相交,找出节点,手写代码
  • 反转单链表,手写代码
  • 给定两个链表,存储着两个16进制数,链表的一个节点存储着16进制数的其中一个数,从高位到低位,求相加的值,返回一个链表,链表中保存相加的结果。(先反转链表,然后逐位相加,记录进位值,再与高位相加)手写代码

今日头条:

最后去的是今日头条的总部,位于北京东三环外的一座写字楼。进入大楼后,前台的工作人员十分热情,耐心的为我指引电梯方向。在进入电梯之前,需要再次通过安全检查,确认身份信息后才能进入电梯。整体感觉头条公司的安保措施十分严格。

  • 抽奖转盘,分四份,中奖概率为5%,UI和逻辑怎么实现
  • 数据库查询,至少参与了三项考试,且分数均超过80的人,写出sql语句
  • 线程同步:线程1循环输出1到10,线程2循环输出1到10,启动线程1、2,要求做到线程2输出5之后,线程1才开始输出(用wait、notify实现)
  • jvm内存模型,垃圾回收机制
  • 手写单例
  • kotlin类的扩展,【】方括号该扩展什么?
  • 怎么在项目中进行架构设计的?MVP模式的优点,如何实现?MVVM了解吗?
  • 网络请求大量图片并展示在页面上,需要注意什么?网络请求资源复用、图片缓存等
  • 内存泄露有哪些?怎么处理?
  • 数据查出来为什么用cursor游标,而不直接返回个list集合?
  • 缓存了10000条数据、怎么查出来并显示?项目中数据库大概是什么量级的?数据量及占内存量?
  • content provide是干什么的?Google为什么设计它?
  • 一个网格页面、显示9张图片,弱网情况下,滑到下一页,怎么去调度线程加载下一页面的图片?
  • 了解的设计模式,代理模式流程、观察者模式流程、涉及几个类
  • 了解哪些google推出的比较新的库、livedata?databinding?jetpack?
  • kotlin相对于Java有什么优势?函数式编程的优势?函数式和面向对象比较
  • 文件中每行有一个手机号对应用户信息,给定手机号查找出对应信息,如果手机号排序了,怎么查?
  • 任意二叉树,求出其中最远的两个节点间的距离
  • 对未来职业生涯的规划?

最后还是觉得小米比较合适自己,就委婉的拒绝了头条的三面。

其实感觉这些大厂面试并不是很难,就是需要你平时的积累,一些项目的经验要讲的清楚明白。工作岗位Android其实不缺,尤其是中高级开发的岗位,所以平时大家还是需要多思考,多学习。

在这里分享一份2023年Android中高级最全面试真题答案解析

由于面试内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可

目录

img

第一章 Java方面

●Java基础部分

●Java集合

●Java多线程

●Java虚拟机

img

第二章 Android方面

●Android四大组件相关

●Android异步任务和消息机制

●Android UI绘制相关

●Android性能调优相关

●Android中的IPC

●Android系统SDK相关

●第三方框架分析

●综合技术

●数据结构方面

●设计模式

●计算机网络方面

●Kotlin方面

img

第三章 音视频开发高频面试题

●为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?

●怎么做到直播秒开优化?

●直方图在图像处理里面最重要的作用是什么?

●数字图像滤波有哪些方法?

●图像可以提取的特征有哪些?

●衡量图像重建好坏的标准有哪些?怎样计算?

img

第四章 Flutter高频面试题

●Dart部分

●Flutter部分

img

第五章 算法高频面试题

●如何高效寻找素数

●如何运用二分查找算法

●如何高效解决雨水问题

●如何去除有序数组的重复元素

●如何高效进行模幂运算

●如何寻找最长回文子串

img

第六章 Andrio Framework方面

●系统启动流程面试题解析

●Binder面试题解析

●Handler面试题解析

●AMS面试题解析

img

第七章 企业常见174道面试题

●SD卡

●Android的数据存储方式

●Broadcast Receiver

●sp频繁操作会有什么后果?sp能存多少数据?

●dvm与jvm的区别

●ART

●Activity的生命周期

●Application能不能启动Activity

●…

img

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值