B站鸿蒙开发
一面:
介绍实习、项目:
1、在dy鸿蒙哪个部门,做什么
2、项目
3、用了哪些技术栈
4、团队怎么分工
5、UI能力是否是跨端技术
6、组件服用的过程中,怎么刷新UI,怎么保证刷新是对的
7、你是怎么打包测试的,打包出来的产物是什么
8、团队做鸿蒙的有多少人
9、开发安卓和开发鸿蒙的区别
10、Java和Kotlin占比主要用什么架构来做项目
语言:
1、用TS多吗,ArkTS和TS主要区别是什么
2、TaskPool和Worker区别是什么
3、实际开发有没有用到多线程能力
4、主要对哪些场景做内存优化
5、为什么复用会让性能更好
安卓八股:
1、var、val、const区别
2、val的值在运行时一定时确定的吗
3、有没有用Jetpack库等来开发项目
4、livecycle用的多吗
5、如何实现数据绑定和数据回调
6、Activity的onCreate方法能不能获取到宽高,为什么
7、可以在什么样的时机,使用什么方式来获取宽高
8、ViewTreeObserver里面的回调是谁触发的
场景题:
b站横向滑动的banner和下方纵向滑动的RecycleView存在嵌套滑动冲突如何解决,从事件分发的角度说明。
怎么保证我的事件能够在需要的时候传给banner而不是下方的RecycleView呢。
计算机网络、系统等八股:
1、TCP和UDP的区别主要是什么
2、TCP怎么保证可靠连接
3、TCP和HTTPS的关系是什么、HTTPS一定要用TCP吗
4、QUIC了解吗,CDN知道吗
5、进程和线程的区别,安卓和鸿蒙各自是怎么实现线程通信的(我说安卓用Handler,鸿蒙有一套类似的,一紧张忘了,其实是各种对象的序列化方式不同,需要分开讨论,鸿蒙用Actor模型)
6、JS中多线程能共享内存吗?
7、volatile关键字保证的是什么,解决的是什么问题
8、为什么会有CPU多级缓存
数据库相关:
1、鸿蒙中怎么用的SQLite,直接写还是操作DB,通过API调用
2、关系型数据库和非关系型数据库区别是什么
手撕:
搜索二维链表(二分查找写出来了,记错二分时间复杂度了)
反问:
1、B站鸿蒙情况,跨端技术用的哪些
2、岗位Base情况(目前只有上海,我比较老实说目前只考虑广东)
大概率挂,目前鸿蒙面经较少,给大家做点参考
#牛客创作赏金赛##面经#