字节十三面(附面经),终于战胜...(上)
字节客户端,流转番茄、剪映、抖音、飞书等多个部门,历经十三次面试,终于拿下。记录下面经:
一面(1h20min)
https://www.nowcoder.com/feed/main/detail/ee15d1b2fb2f4d459b0938dabd7e1922
二面(45min)
https://www.nowcoder.com/feed/main/detail/a9f0d490ebb1472bbffb16575daf4902
三面(1h30min)
1. 自我介绍(项目)
2. 项目说一半打断、提问项目
3. 鸿蒙开发感受如何,和安卓相比有什么区别
4. 你更倾向鸿蒙还是安卓开发(当然是安卓,鸿蒙的ide巨落后)
5. 鸿蒙开发安装包有哪些东西(不会)
6. 安卓应用升级到鸿蒙数据是怎么迁移的(不会)
7. 开始问java,接口和抽象类的区别
8. 接口的应用场景说个你使用到的例子(不同请求的网络成功失败回调)
9. 这样会导致接口膨胀(回答了跟抽象类的对比,共性提取和复用。感觉自己答非所问了??)
10. 接口能继承抽象类吗?
11. 四大引用说一下、以及各自的应用场景
12. 弱引用常用来做什么(检测和防止内存泄露)
13. 弱引用对象被回收了,那调用对象的方法或成员变量会导致状态异常?(判空)
14. 弱引用在业务上的使用多吗?(掰扯了很久,没明白想问什么,最后回答非必要不使用)
15. gc说一下(引用计数、可达性分析等)
16. gc算法说一下
17. 这些算法各自的特点说一下
18. 现代jvm是如果利用各种gc算法的(忘了,提示分代,应该是根据不同分代选择不同算法)
19. 你说到新生代,它是使用什么算法(忘了,沉默)
20. 跳过,gc的过程和gc的缺陷
21. 引用计数可能有什么问题(循环引用)
22. 循环引用具体说一下
23. HashMap和HashTable、LinkedHashMap的区别说一下(答了线程安全和数据结构实现的区别)
24. HashTable线程安全的原理是什么
25. 还有哪些线程安全的容器(ConCurrentHashMap)
26. 它和HashTable的区别是什么(答了实现线程安全的方式不同)
27. 你提到CAS,具体说一下
28. CAS可能出现什么问题(ABA问题)
29. 怎么解决(版本号、时间戳)
30. Handle的Message有哪些(不懂,答了post的Runnable和sendMessage的Message)
31. 它们是同步的吗(依然不知道想问什么,答了MainLooper的消息队列通过消息入队顺序处理,除非是延时消息)
32. Looper 是如何保证线程唯一性的?(答了ThreadLocal和具体的存储过程)
33. 事件分发机制说一下
34. 点击事件的事件类型和执行顺序说一下
35. 手指按到屏幕上,再滑动,此时会滑动吗?内部的事件类型的事件传递过程是怎样的?滑动事件在哪里被处理?
36. 给出一段代码:分析代码意图和错误
不看后面的省略号,执行完结果是什么?会出现什么问题?怎么解决?(倒序)
增强for可以吗?(可以,内部使用迭代器实现)
这里的==有什么问题?equals和==的区别?它和hashcode的应用?
37. 环形链表II
解释思路?如果不考虑空间复杂度你会使用什么容器?(脱口而出map)
map的键是什么?(想起来使用set就行)
set有判断包含元素的方法吗?(contains)
面试评价:
整体表现都挺不错的,包括项目、实习、面试表现
总体感受:
大概答出90%,虽然面试时慌得一批,但是面完回想还是基本都答出来了,过
四面(1h15min)
1. 手写HashMap,只能使用数组、链表(并对各种机制进行深度拷打,基本所有hashmap底层的设计都进行了拷打,比如容量设置考量,扩容具体过程,为什么是2倍、先插入再判断扩容还是先扩容再插入等等)
2. SQLite使用什么数据结构
3. B+树有什么特点
4. 为什么不使用二叉查找树
5. 数据库查询优化思路是什么
6. 索引什么情况会失效
7. Java的static说一下
8. 静态变量存在哪个地方?在什么时候分配内存?什么时候初始化?初始化和准备哪个先?
9. int数据存在哪个地方(分情况讨论)
10. 静态代码块什么时候执行
11. 类初始化做了什么
12. 类加载和初始化哪个先执行
13. 进程和线程的区别
14. 进程调度算法有哪些
15. 时间片轮转说一下
16. 时间片轮转和先来先服务的区别,怎么选择?
17. 和高响应比优先比呢?
18. Okhttp的连接复用机制说一下
19. 连接复用的优点和缺点
20. SparseArray的原理?它的key怎么来的?(应该是要问避免hashmap的Integer装箱的开销,可惜很久前看的,忘了很多)
总结:压力最大的一次面试,挂
五面(1h05min)
1. 自我介绍
2. 项目介绍
3. 安卓层是怎么执行c++代码的
4. 包大小的减少是从哪些方面提升用户使用体验的
5. MVP和MVVM的区别
6. 倾向使用哪种架构,哪个更易于维护
7. ArrayList和LinkedList的区别
8. 泛型
9. 运行时能获取到具体的泛型信息吗
10. ==和equals的区别
11. kotlin的==和equals
12. Kotlin如果同一个类两个对象都有一个String字段且值相同,==返回什么(false,默认比较的是地址)
13. data class
14. 如果data class的两个对象内部属性一样,==返回什么(true,数据类内部自动重写了equals)
15. 给一段多线程并发代码,判断打印的内容
16. 合并两个升序链表(写完迭代问还有别的方式实现吗->讲递归的实现)
过
六面(1h40min)
1. 自我介绍
2. 项目介绍
3. java和Kotlin调用jni有什么不一样
4. 在一个很简单的需求扯了很久(大概率是挂的原因,后续调整了实习需求介绍的优先级)
5. UTF - 8是几个字节(英文1个,中午3个)
6. 如何识别字节流截取的位置(保证截断的位置不会导致尾部字符的不完整或乱码)
7. join联表为什么能解决相关子查询
8. 怎么自动化识别和记录数据库查询慢的语句
9. java垃圾回收算法
10. 判断垃圾对象的方法,优缺点对比
11. gc使用了哪种判断垃圾方法,还是两种都用
12. 排查内存泄漏的方法
13. LeakCanary的原理
14. 常见的内存泄漏场景
15. 内存泄漏的原理,为什么会导致泄漏
16. 匿名对象一定会持有外部类的引用吗
17. 图片的大小是如何确定的
18. 图片的像素是怎么决定的
19. https的加密过程是怎么样的
20. 验证证书的过程
21. 算法:平衡二叉树
总结:没什么问题,都挺好的。但是挂
篇幅限制后续面经看下篇
#字节求职进展汇总#
#秋招#
#字节#
一面(1h20min)
https://www.nowcoder.com/feed/main/detail/ee15d1b2fb2f4d459b0938dabd7e1922
二面(45min)
https://www.nowcoder.com/feed/main/detail/a9f0d490ebb1472bbffb16575daf4902
三面(1h30min)
1. 自我介绍(项目)
2. 项目说一半打断、提问项目
3. 鸿蒙开发感受如何,和安卓相比有什么区别
4. 你更倾向鸿蒙还是安卓开发(当然是安卓,鸿蒙的ide巨落后)
5. 鸿蒙开发安装包有哪些东西(不会)
6. 安卓应用升级到鸿蒙数据是怎么迁移的(不会)
7. 开始问java,接口和抽象类的区别
8. 接口的应用场景说个你使用到的例子(不同请求的网络成功失败回调)
9. 这样会导致接口膨胀(回答了跟抽象类的对比,共性提取和复用。感觉自己答非所问了??)
10. 接口能继承抽象类吗?
11. 四大引用说一下、以及各自的应用场景
12. 弱引用常用来做什么(检测和防止内存泄露)
13. 弱引用对象被回收了,那调用对象的方法或成员变量会导致状态异常?(判空)
14. 弱引用在业务上的使用多吗?(掰扯了很久,没明白想问什么,最后回答非必要不使用)
15. gc说一下(引用计数、可达性分析等)
16. gc算法说一下
17. 这些算法各自的特点说一下
18. 现代jvm是如果利用各种gc算法的(忘了,提示分代,应该是根据不同分代选择不同算法)
19. 你说到新生代,它是使用什么算法(忘了,沉默)
20. 跳过,gc的过程和gc的缺陷
21. 引用计数可能有什么问题(循环引用)
22. 循环引用具体说一下
23. HashMap和HashTable、LinkedHashMap的区别说一下(答了线程安全和数据结构实现的区别)
24. HashTable线程安全的原理是什么
25. 还有哪些线程安全的容器(ConCurrentHashMap)
26. 它和HashTable的区别是什么(答了实现线程安全的方式不同)
27. 你提到CAS,具体说一下
28. CAS可能出现什么问题(ABA问题)
29. 怎么解决(版本号、时间戳)
30. Handle的Message有哪些(不懂,答了post的Runnable和sendMessage的Message)
31. 它们是同步的吗(依然不知道想问什么,答了MainLooper的消息队列通过消息入队顺序处理,除非是延时消息)
32. Looper 是如何保证线程唯一性的?(答了ThreadLocal和具体的存储过程)
33. 事件分发机制说一下
34. 点击事件的事件类型和执行顺序说一下
35. 手指按到屏幕上,再滑动,此时会滑动吗?内部的事件类型的事件传递过程是怎样的?滑动事件在哪里被处理?
36. 给出一段代码:分析代码意图和错误
不看后面的省略号,执行完结果是什么?会出现什么问题?怎么解决?(倒序)
增强for可以吗?(可以,内部使用迭代器实现)
这里的==有什么问题?equals和==的区别?它和hashcode的应用?
37. 环形链表II
解释思路?如果不考虑空间复杂度你会使用什么容器?(脱口而出map)
map的键是什么?(想起来使用set就行)
set有判断包含元素的方法吗?(contains)
面试评价:
整体表现都挺不错的,包括项目、实习、面试表现
总体感受:
大概答出90%,虽然面试时慌得一批,但是面完回想还是基本都答出来了,过
四面(1h15min)
1. 手写HashMap,只能使用数组、链表(并对各种机制进行深度拷打,基本所有hashmap底层的设计都进行了拷打,比如容量设置考量,扩容具体过程,为什么是2倍、先插入再判断扩容还是先扩容再插入等等)
2. SQLite使用什么数据结构
3. B+树有什么特点
4. 为什么不使用二叉查找树
5. 数据库查询优化思路是什么
6. 索引什么情况会失效
7. Java的static说一下
8. 静态变量存在哪个地方?在什么时候分配内存?什么时候初始化?初始化和准备哪个先?
9. int数据存在哪个地方(分情况讨论)
10. 静态代码块什么时候执行
11. 类初始化做了什么
12. 类加载和初始化哪个先执行
13. 进程和线程的区别
14. 进程调度算法有哪些
15. 时间片轮转说一下
16. 时间片轮转和先来先服务的区别,怎么选择?
17. 和高响应比优先比呢?
18. Okhttp的连接复用机制说一下
19. 连接复用的优点和缺点
20. SparseArray的原理?它的key怎么来的?(应该是要问避免hashmap的Integer装箱的开销,可惜很久前看的,忘了很多)
总结:压力最大的一次面试,挂
五面(1h05min)
1. 自我介绍
2. 项目介绍
3. 安卓层是怎么执行c++代码的
4. 包大小的减少是从哪些方面提升用户使用体验的
5. MVP和MVVM的区别
6. 倾向使用哪种架构,哪个更易于维护
7. ArrayList和LinkedList的区别
8. 泛型
9. 运行时能获取到具体的泛型信息吗
10. ==和equals的区别
11. kotlin的==和equals
12. Kotlin如果同一个类两个对象都有一个String字段且值相同,==返回什么(false,默认比较的是地址)
13. data class
14. 如果data class的两个对象内部属性一样,==返回什么(true,数据类内部自动重写了equals)
15. 给一段多线程并发代码,判断打印的内容
16. 合并两个升序链表(写完迭代问还有别的方式实现吗->讲递归的实现)
过
六面(1h40min)
1. 自我介绍
2. 项目介绍
3. java和Kotlin调用jni有什么不一样
4. 在一个很简单的需求扯了很久(大概率是挂的原因,后续调整了实习需求介绍的优先级)
5. UTF - 8是几个字节(英文1个,中午3个)
6. 如何识别字节流截取的位置(保证截断的位置不会导致尾部字符的不完整或乱码)
7. join联表为什么能解决相关子查询
8. 怎么自动化识别和记录数据库查询慢的语句
9. java垃圾回收算法
10. 判断垃圾对象的方法,优缺点对比
11. gc使用了哪种判断垃圾方法,还是两种都用
12. 排查内存泄漏的方法
13. LeakCanary的原理
14. 常见的内存泄漏场景
15. 内存泄漏的原理,为什么会导致泄漏
16. 匿名对象一定会持有外部类的引用吗
17. 图片的大小是如何确定的
18. 图片的像素是怎么决定的
19. https的加密过程是怎么样的
20. 验证证书的过程
21. 算法:平衡二叉树
总结:没什么问题,都挺好的。但是挂
篇幅限制后续面经看下篇
#字节求职进展汇总#
#秋招#
#字节#
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
