140天的Android面试之路,还是选择了妥协

140天的Android面试之路,还是选择了妥协_第1张图片

在2023年6月,我终于收到了一个公司的offer。然而,这之前的四个月,却是一场充满泪水的艰辛历程。

从2月1日开始投递简历,到6月28日,整整140天,期间经历了许多不为人知的辛酸。这段时间,我终于完成了这篇面试面经,记录了这一段充满泪水的艰辛历程。

这140天,真的是担惊受怕、坐立不安、上蹿下跳的。有时在半夜醒来,我突然想到面试官当时想问的问题,便辗转反侧、彻夜难眠。

2月1日,我在BOSS上投递简历,经过修改话术、发链接等努力,终于收到了一个电话面试。然而,这却让我开始自我怀疑,觉得自己各方面都不行。面试机会的匮乏让我备受打击,室友找我出去吃烧烤,为了宣泄情绪,我主动喝了七瓶啤酒,最后难受得哇哇吐。虽然我是东北人,但其实我并不喜欢喝酒,平时都尽量躲酒。几天后,我收到了腾讯会议的视频面试,大约半个小时,主要问了一些问题并写了点代码。2月25日,我收到了第一个offer,心情稍微高涨了一点。

140天的Android面试之路,还是选择了妥协_第2张图片

3月1日,我参加了携程的笔试,然后进行了面试。二面结束后,我越复盘越觉得心痛。这段时间,我正忙着准备一些生活的琐事,本来就已经头疼,面试又挂了,让我直接崩溃。而且金三银四很多大公司的招聘都已经开始,我也都投递了,但大多初筛都没过,只有携程到了面试环节,没想到我还是搞砸了。室友又叫我去吃饭喝酒,这次喝的是什么酒啊,一瓶就让我迷糊了,喝完酒后睡了一觉,精神状态也好了一些。继续备赛后,我在牛客上看到有同学和我差不多时间面试状态变成hr了,我不死心地去查查,发现自己也进入了hr面试。突然,我好开心,结果没多久,hr告诉我面试通过了,然后就没信了。CVTE的笔试也通过了,开始约面试,但公司的流程很慢。滴滴和图森未来都收到了面试邀约,其中图森算法面试没答对,技术栈也不匹配,一面都没通过。滴滴是我第一个知名互联网offer,也是唯一一个,几天后,好未来另一个部门约我面试,hr说面试通过了,让我等offer,然后就再也没有音讯了。CVTE的hr面也失败了。

进入五月,我在牛客网上看到百度招聘(其他招聘软件也投了),直接给他们发了邮件。回复说他们部门招满了,把我推荐给别的部门。晚上,hr约我面试。我没想到机会这么快就来了。

但是,戏剧性的一幕又出现了。面试结束后,面试官问我愿不愿意以另一种方式加入他们,正式变成了外包。我的简历不仅没有隐藏学历,还单独列了教育经历,放在了简历最上方,就是为了防止这种事情发生,但最后还是出现了。还好第二天,字节这边内推通过了,BOSS上投递的简历,牛客网上看到内推人的微信,加了询问进度,挂了。内推人打电话简单询问了简历情况,又捞了我一下,才有这个面试机会。

感觉字节面试的压力和难度确实要比其他公司大很多,没想到三面能通过,毕竟异步调度器我写了那么久还没写对。但学历问题导致offer批不下来,不过hr说在群里推荐了一下,我就又被别的部门捞起了。这个部门的一二面都一个多小时,面完心都哇凉哇凉的,根本没想到能过。三面时,感觉面试官没问我什么,然后挂掉了。其实我的水平太差,面试官对我不感兴趣吧。这次挂掉,说实话不心痛,反而很释怀。面试毕竟是一个双向选择的过程。

虽然这一路走来很艰辛,也不知道自己下一步将迈向何方,但在心态和技术上,我确实成长了很多。回首这段经历,我算是挺幸运的。每一次失败,都让我更加明白自己的不足,也为我指明了前进的方向。我将珍惜这次难得的机会,继续努力,勇攀技术的高峰。虽然最后没有进入字节,但是没有但是了!!!

字节3轮技术面+一轮HR面

技术面一面(时长47分钟)

有些问题忘记了,记忆中就只有这些内容

  • 自我介绍
  • 项目有没有上线
  • 项目难点
  • DialogFragment 内存泄漏的定位过程
  • Leakcanary 的原理
  • Handler 介绍一下
  • Handler 内存泄漏说一下
  • 说一下设计模式
  • 手写单例
  • 算法:[112. 路径总和](javascript:void(0)

技术面二面(时长48分钟)

  • 自我介绍
  • 介绍一下项目
  • 软件大概样式是怎样
  • 首页是怎样做的
  • 首页下拉刷新是怎么做的?(说了滑动冲突的处理)
  • view 事件分发机制怎样
  • 事件好几层,怎么知道是由哪个控件处理(说了根据触摸的位置啥的,不太了解对不对)
  • 提到了责任链,内部链怎么分发的
  • 怎么判断哪个 view 处理(根据 return true/ false
  • 我们的事件有action_move,action_down,action_cancel,所有的事件都是一层一层往下分发吗(说了不一定,down 被拦截了,后续就收不到其他的事件了,然后提到了 action_cancel 的机制)
  • 我听到你首页用了 recyclerView ,那他一般怎么用?
  • 提到了 adapter
  • adapter 用来干嘛?
  • adapter 中有哪些是主要方法(说了 bindView ,这块不太记得了,说项目中用到的是 BRVAH
  • 提到了 ListView
  • 为什么用 Rv 不用 Lv(说了1.强制实现 viewHolder (避免 findViewById ) 2.缓存机制)
  • Lv 二级缓存怎么判断这个 View 是他要的?(答了 postion,id
  • 然后问 id 指的是?(这里说忘记了)
  • 四级缓存是怎么找到 view 他要的?(说了 itemType
  • 如果有相同的 itemType 怎么处理?(说了直接使用任意一个)
  • 如果四级缓存中找不到呢?(说了手动加载)
  • 手动加载是哪里来的?(说了从布局 xml 中定义的 itemtype 中拿的)
  • xml 怎么关联到 Rv (加载代码 inflate 的,不太了解)
  • 堆内存和栈内存区别
  • 5层网络协议包括哪些?
  • tcp 三次握手说一下
  • equals== 区别
  • hashmap 实现原理(说了基本结构,put
  • get 是怎样实现的

智力题:

  • 5升桶,3升桶,水无限,你给我装出4升水

算法:[82. 删除排序链表中的重复元素 II](javascript:void(0)

技术面三面(时长37分钟)

  • 自我介绍
  • 架构设计主要是什么
  • 说一下你提到的依赖倒置
  • 除了依赖倒置还有什么重要的原则(刚说完单一职责就被打断)
  • MVP注意事项(说了内存泄漏的处理)
  • 内存泄漏的原理
  • 怎么判断内存不能被释放
  • 如何检测内存泄漏(说了线下用 LeakCanary,线上用 Memory profiler,然后自己扯到 DialogFragment 内存泄漏)
  • 打断,问 final 作用(说了修饰类,方法,变量,作用)
  • 非静态内部类引用外部类对象,需要 final 关键字吗?(说了应该用 static ,转为静态内部类,防止内存泄漏)
  • 多线程使用过吗
  • 说一下线程池的使用(刚说了构造方法实现)
  • 核心线程数什么作用(说了线程池的运行流程)
  • 核心线程数和最大线程数的设置(IO 密集型和 CPU 密集型,最大线程数的话,看系统支持的并发量)
  • 一个进程有多少个线程?(说了空间允许的范围内可以一直开辟)
  • 实际上是多少?(说了 2g 分配的空间)
  • 为什么是2g(说了之前看过,具体原理不太清楚)
  • 一个异步任务都开一个线程,还是多个任务开一个线程,你怎么决定开不开?(说了耗时的话就开,不太耗时不开,因为线程切换调度的话,存在一定的开销)
  • 线程安全怎么保证?
  • syncronized 内部原理是什么(说了修饰静态方法和非静态方法,代码块)
  • 修饰静态方法和非静态方法,能够并发执行吗?(可以,因为他们锁的对象不一样,说到了死锁)
  • 死锁的原理是什么?
  • 出现死锁怎么排查(这个不太会,说了用 jvm 中的 jstack
  • 追问怎么用?(说没用过,只是知道)
  • 问我他的原理是什么?(不太知道,说看 traces.txt ,看堆栈)
  • 怎么安全停止一个线程(说了用 volatile 修饰变量,通过 while(变量),手动设置 true false
  • volatile 原理是什么?(说了 java 内存模型啥的,修饰特性啥的)
  • 网络了解吗
  • tcp 优点(可靠性,面向连接)
  • 面向连接是什么?(说了计算机通信前建立连接)
  • 面向连接和非面向连接的本质区别是什么?(乱答,不知道)
  • 拥塞控制原理
  • httpudp 区别(说了层数)
  • http 请求流程

下面开始聊天了

  • 反问

HR 面

  • 你是周一面的三面,这几天关于面试你是怎么考虑的?
  • 周一面试完,周四周五才给你反馈,有考虑过面试不通过吗

我说周二就给我反馈了

  • 面试感受如何?

  • 你对面试做了什么准备

  • 有做一些刷题吗?

  • 字节算法这块,难度怎么样

  • 配合方式是怎样的?

  • 说一下影响比较深的项目

  • 主要是客户端做?还是前端后台都有?

  • 这个项目你对自己是怎样评价的?

  • 团队协作有没有遇到比较难推进的时候?

  • 你会主动去配合团队吗

  • 自己学习或者工作,怎么安排时间?

  • 工作的时间占你一天多少时间?

  • 任务你是怎么管理

  • 你的方法论挺好的,你提到的日程管理软件是哪个?

  • 旁边人用哪几个词语评价你

  • 你的优点缺点分别是什么?

  • 有遇到压力特别大的时候吗?

  • 你对自己的未来的规划

  • 什么时候能来?能来多久

  • 反问

更多的面试题资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可

目录

img

第一章 Java方面

●Java基础部分

●Java集合

●Java多线程

●Java虚拟机

img

第二章 Android方面

●Android四大组件相关

●Android异步任务和消息机制

●Android UI绘制相关

●Android性能调优相关

●Android中的IPC

●Android系统SDK相关

●第三方框架分析

●综合技术

●数据结构方面

●设计模式

●计算机网络方面

●Kotlin方面

img

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

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

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

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

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

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

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

140天的Android面试之路,还是选择了妥协_第3张图片

第四章 Flutter高频面试题

●Dart部分

●Flutter部分

140天的Android面试之路,还是选择了妥协_第4张图片

第五章 算法高频面试题

●如何高效寻找素数

●如何运用二分查找算法

●如何高效解决雨水问题

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

●如何高效进行模幂运算

●如何寻找最长回文子串

140天的Android面试之路,还是选择了妥协_第5张图片

第六章 Andrio Framework方面

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

●Binder面试题解析

●Handler面试题解析

●AMS面试题解析

img

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

●SD卡

●Android的数据存储方式

●Broadcast Receiver

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

●dvm与jvm的区别

●ART

●Activity的生命周期

●Application能不能启动Activity

●…

140天的Android面试之路,还是选择了妥协_第6张图片

你可能感兴趣的:(android,面试,职场和发展,开发语言,android,studio)