2024年迟来的6月份字节跳动面经(Android 客户端),应届毕业生硬件工程师面试题库

最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。

小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


一面(60分钟)


前15分钟

  1. 个人介绍, 什么时候接触的安卓开发, 实习能实习多久, 介绍一下项目

  2. 你说你的软件出现了OOM, 你怎么解决的? 线上crash你是用了什么来分析的?

  3. 这些项目都是怎么来的? 软件中这些内容都怎么来的? 你知道后端怎么来的吗? 后端是不是爬下来的? 每天有多少上传量呢?

接下来15分钟

  1. 进程和线程有啥区别呢? 为什么要定义出这样的概念来? 有什么用呢?

  2. 哈希表是一个怎样的数据结构? 怎么避免hash碰撞? 容量有什么样的特点?

  3. 数据库有了解吗? 索引了解吗? 怎么实现的快速查找? 快速查找的是什么东西?

  4. TCP协议如何确保稳定传输?

  5. 说一下Activity的启动模式

  6. Handler有了解吗? 说一下原理? 你刚才说到Looper是个死循环, 那么messageQueue 没消息的时候那它不还是会循环占用CPU资源吗?

  7. 我看你用过一些开源库比如说okhttp, 你能说一下原理吗? 分析一下 okhttp 自带的这些 InterceptorChain 是干啥的? 这些 Interceptor 的用途呢?

然后12分钟

你觉得有什么你擅长的但是我还没问的??

  1. 那我讲一下屏幕怎么绘制view的吧

  2. 为什么多次测量性能差了呢? Compose是怎么解决这些的?

  3. onMeasure里面有个东西叫MeasureSpec, 你说一下这是一个什么样的数据

最后一道算法: 剑指 Offer 38. 字符串的排列 - 力扣(LeetCode) (leetcode-cn.com)


可能当时没答上来的只有个 HashMap 如何尽可能避免碰撞了

二面(45分钟)


  1. 你主要用的 Java 还是 Kotlin?(我: Kotlin, 面试官:那我问你点 Java 的东西吧)

  2. 怎么创建一个线程? start 和 run 的区别? 线程和进程的区别? 进程可以没有线程吗?

  3. Android 里面, 主线程的作用是什么? 刷新UI能放到其他线程里面吗? 你说的可以放到其他线程的特殊情况是什么呢? 怎么在子线程弹一个 toast?(提前 Looper.prepare 就行了)

  4. Looper.prepare 做了什么事情呢? 能介绍一下 ThreadLocal 的含义吗, 内部实现原理呢?

  5. Java里我们要访问本地一个文件, 我们应该怎么办? FileInputStream读取的是二进制流数据, 怎么读取文本呢? 怎么判断读到文件末尾了呢?

  6. 你有没有遇到什么比较难的问题呢? (我: OOM 我项目经常出现(这里想让面试官问我项目, 淦 他不问)) 什么场景会产生OOM呢? 什么原因呢? 怎么解决的呢?

  7. 假设一个图片很大, 应该怎么处理呢? (我: Glide/BitmapFactory(这里想让面试官问Glide 淦 他不问)), 具体是怎么缩放的呢? 假设 BitmapFactory 的 inSampleSize 设置为2的话, 图片内存占用缩小为多少? ARGB_8888和RGB_565的区别?

  8. HTTP请求常用的header说一下? 常见的状态码说一下? 206是什么? 你用过断点续传吗?

  9. 介绍一下Jetpack组件的ViewModelLiveData怎么用的, 为什么ViewModel可以跟随Activity的生命周期而在旋屏时候保留数据呢? (这里说到ViewModel我提到了MVVM架构, 我想让他问, 淦 他没问)

  10. 堆内存和栈内存有啥区别呢? (我这里说堆内存是gc的主要区域, 我想让他问我gc, 淦 他没问) 分别存啥?

  11. Java里面ClassLoder加载机制是什么? 是先去parentClassLoder里面加载还是我自己的里面加载呢? 这样做的目的是什么呢?

  12. Java反射了解吗? 这么去访问一些私有的方法和变量呢?

算法题: 230. 二叉搜索树中第K小的元素 - 力扣(LeetCode) (leetcode-cn.com)

刚开始递归遍历子节点个数, 面试官说你这样还会多次遍历啊, 能降低一下复杂度吗? 然后我用了中序遍历

你这个算法多线程访问可能会出问题啊, 你怎么办, 你不能限制访问者怎么用, 访问者想在多线程去跑这个算法怎么办呢?


一些可能当时没答上来, 答得不好的:

最后

想要了解更多关于大厂面试的同学可以点赞支持一下,除此之外,我也分享一些优质资源,包括:Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值