字节飞书 Android客户端 一面凉经

#面经# 发面经攒人品#牛客AI配图神器#
1. 自我介绍
2. 为什么在你的项目里要使用Mvvm框架?
答:xxx
问:他相比于MVC框架有什么优势
答:xxx
问:用过MVP吗,为什么不用MVP?
答:没用过,但是了解过一些
3. viewmodel有什么特点
答:提到livedata,
问:不理解viewmodel和livedata的强依赖关系,能解释一下吗?
答:xxxx
问:那我把livedata放在一个普通的类里面不行吗?
答:懵逼 答了一部分
问:livedata需要依赖viewmodel来取消订阅吗?
答:放在普通类里面没有生命周期感知
问:一个viewmodel在fragment销毁时执行哪些方法?
4. 解释一下livedata?
答:xxxx生命感知
问:他是怎么感知到生命周期的
答:不太懂啊
5. 为什么要用recyclerview?
答:吟唱
6. 除了这些jetpack套件还用过哪些?
常用的就这些。
7. 你熟悉kotlin吗?
答:不熟
8. 你们的项目的里面有网络请求还有数据库缓存这些能力吗?
答:okhttp3, retrofit 以及room
问:room不就是jetpack套件吗?刚才问什么不说
答:师兄写的,处理业务逻辑没用过
问:那你自己了解room 和sqlite的区别吗
答:不懂
问:shared_perference有什么性能问题
答:xxxxx但是性能问题不懂。
问:那你知道shared_perference现在有什么上位替代吗
答:不清楚,写安卓好久之前了
9. 那你们网络请求有用okhhtp的拦截器吗?
答:有的,用来处理通用的网络错误。
问:怎么用你知道吗?
答:xxxxxxx
问:那这个拦截器是一个什么设计模式
答:策略模式吗?根据不同的code弹出不同的错误?
问:不不不,我问的是拦截器的模式
答:okhttp3 的client应该是个建造者模式吧
问:拦截器是怎么实现的,如果我有多个拦截器的话,这个怎么协调他们的工作。
答:不太懂
问:那你们用的retrofit的网络请求库,我要去增加一个API调用我要怎么做
答:注解式编程吧,xxxxx,但是这个是如何获取到这个注解的就不是很了解、
10. volatile关键字了解吗?
答:开始吟唱
11. cookie 和session有什么区别
答:吟唱了一部分,
问:还有吗?
答:不太了解,这部分安卓项目中用到的比较少
12. Java里面有哪些引用类型,你知道吗?
答:吟唱
问:虚引用你在什么场景下用过吗?
答:没做过内存泄漏的排查
13. java里面有锁这种方式,你知道吗?
答:悲观锁 synchronized lock  乐观锁:CAS 
问:synchronized lock 有什么区别?
答:synchronized 锁升级机制,Lock 基于AQS,高并发 lock 低并发synchronized 
问:如果一个方法加上synchronized的修饰,一个静态方法加synchronized 有什么区别?
答:不会
14. Android里面触摸事件的传递机制你了解吗
答:传递顺序讲了一下
问:一个完整的事件,它有按下,然后有移动,然后再有抬起。如果view没有消费touchdown,那么后续的事件还能消费到吗?
答:懵逼,如果被拦截掉的话消费不到,那应该能消费到吧,具体不太清楚。
15. 写题:多种方式实现单例
synchronized 2min写完,讲清楚原理
内部静态类的 3min 写完 讲不明白为什么线程安全的
16. 反问:更看重代码能力还是基础
答:都看
问:有什么要求?
答:去官网看职位要求
全部评论
觉得表现还可以,可能字节确实不是我这种菜鸡能进的
1 回复 分享
发布于 2025-03-19 21:29 香港
这是实习岗位吗?
点赞 回复 分享
发布于 2025-04-08 15:17 北京
他想问你拦截器里面的责任链模式😋
点赞 回复 分享
发布于 2025-04-05 07:49 浙江
看了别的面经都好紧张 一下被博主逗乐了
点赞 回复 分享
发布于 2025-04-02 10:30 上海
安卓东西用到的基本都要看源码和机制,因为东西不多大家都用差不多的,而且行业老很多老炮。可以多看看源码,或者看一些文章讲你常用东西的机制
点赞 回复 分享
发布于 2025-03-25 00:10 广东
mark一下,下周字节
点赞 回复 分享
发布于 2025-03-23 12:52 广西
脑海中联想你“吟唱”时候的样子
点赞 回复 分享
发布于 2025-03-21 10:28 山东

相关推荐

03-07 13:19
门头沟学院 Java
字节again,感谢节子天天给我发面试机会1. 拷打项目就只问了几句,主要是对业务场景提出了质疑,感觉我的回答他没理解,我也没太理解他想听啥,然后就糊弄过去了2. 八股1. Java和python,c++等语言的区别2. java的特性(回答了继承封装多态)3. 额外解释了一下什么是多态4. Java有哪些集合,解释一下底层数据结构(说了一下hashmap, arraylist,linkedlist)5. Array list如何扩容6. 哈希map如何扩容?7. 哈希map和hash table的区别,和con currentash map的区别,既然table和current hash map都是线程安全,为什么使用current hash map不用table8. MySQL和redis的区别9. 既然MySQL内存和磁盘都能存储,为什么使用redis不用MySQL?为什么red is快?除了基于内存外有别的原因吗?10. hive表和mysql的区别,为什么hive表可以存储巨量数据11. 你知道memory cache吗?(。。。理解错题意了,以为是问的技术或某个软件,和redis一样,面完了才缓过来是个技术概念,当时傻不拉几的说是c#里的一个类)12. Http的长连接和短连接13. 为什么http 传输层是用TCP不用udp?14. 除了http 1.0和1.1外,还了解别的版本吗?15. Http有什么状态码(啊啊啊这个记错了,500是internal server error,记成bad request了)16. 大语言模型了解哪些?(说了一个agent)17. 解释一下agent的作用(顺便扯到了mcp)算法题:实现指定下标的链表删除,就传一个index,然后删除列表的这个位置(简单题秒了)感觉面试官技术栈应该不是Java,就全程听我瞎扯呼,问的答上来的九成,算法题也撕的简单,面试体验也很好,就是最后给挂了。。
想摸鱼不想干活:woc过了,之前发了感谢问卷,还以为挂了呢,结果周一给我打电话又说过了
点赞 评论 收藏
分享
评论
7
33
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务