腾讯上海QQ客户端实习一面
1. 先自我介绍 然后自己在简历中选一个认为比较有挑战的项目,阐述这个项目的主要难点
2. recyclerView 底层是如何进行回收的,消失的item是被gc了吗?
(消失的ViewHolder 被回收 ↓
→ 放入缓存池 ↓
→ 新 item 滑入(比如 position 5) ↓
→ 从缓存池复用旧 ViewHolder ↓
→ 调用 onBindViewHolder(holder, 5) 重新绑定新数据, 也就是说假设recyclerView只能显示五个数据,首次显示的时候会循环调用createViewHolder 与onBindViewHolder 5 次 上划时候 消失的viewHolder放入缓存池,新建的viewHolder查看缓存池中是否有对应类型的viewHolder ,如果有就取出作为新viewHolder,如果没有就create, 然后进行bind)
3. viewModel 如何得到viewModel ? (new ViewModelProvider(this).get(MyViewModel.class) )
4. context 的作用(绑定在哪个生命周期作用域中)
5. 如果viewModel 使用全局单例模式会影响功能吗 ,或者造成什么后果 (对功能影响不大, 但是没有生命周期感知容易内存泄漏 正常的 ViewModel 会在 Activity 被销毁时清除;单例永远存在 ,正确做法:使用 Application 作用域的 ViewModel)
6. java exception与error区别
7. 内存泄漏的场景? 如何解决内存泄漏(注意释放资源, 使用软引用弱引用)
8. stringbuffer 与stringbuilder的区别 , 如果两个线程都调用了一个函数,函数中有new stringbuilder 会产生脏数据吗
9. 线程间的通信方式 (handler, 共享内存+volatile , wait+notify ,livedata ,BlockingQueue )
10. handler 底层原理
11. livedata线程通信的底层原理
手撕:压缩字符串
2. recyclerView 底层是如何进行回收的,消失的item是被gc了吗?
(消失的ViewHolder 被回收 ↓
→ 放入缓存池 ↓
→ 新 item 滑入(比如 position 5) ↓
→ 从缓存池复用旧 ViewHolder ↓
→ 调用 onBindViewHolder(holder, 5) 重新绑定新数据, 也就是说假设recyclerView只能显示五个数据,首次显示的时候会循环调用createViewHolder 与onBindViewHolder 5 次 上划时候 消失的viewHolder放入缓存池,新建的viewHolder查看缓存池中是否有对应类型的viewHolder ,如果有就取出作为新viewHolder,如果没有就create, 然后进行bind)
3. viewModel 如何得到viewModel ? (new ViewModelProvider(this).get(MyViewModel.class) )
4. context 的作用(绑定在哪个生命周期作用域中)
5. 如果viewModel 使用全局单例模式会影响功能吗 ,或者造成什么后果 (对功能影响不大, 但是没有生命周期感知容易内存泄漏 正常的 ViewModel 会在 Activity 被销毁时清除;单例永远存在 ,正确做法:使用 Application 作用域的 ViewModel)
6. java exception与error区别
7. 内存泄漏的场景? 如何解决内存泄漏(注意释放资源, 使用软引用弱引用)
8. stringbuffer 与stringbuilder的区别 , 如果两个线程都调用了一个函数,函数中有new stringbuilder 会产生脏数据吗
9. 线程间的通信方式 (handler, 共享内存+volatile , wait+notify ,livedata ,BlockingQueue )
10. handler 底层原理
11. livedata线程通信的底层原理
手撕:压缩字符串
全部评论
佬不是搞嵌入式的吗
相关推荐
点赞 评论 收藏
分享
04-08 17:47
门头沟学院 C++ 点赞 评论 收藏
分享