太牛了!美团 Android 开发工程师岗位职能要求,大厂面试题汇总
近日一好友去阿里面试,面试失败了,分享了一个他最不擅长的算法面试题。题目是这样的。
题目:给定一个二叉搜索树(BST),找到树中第 K 小的节点。
出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家
参考答案:
考察点
基础数据结构的理解和编码能力
递归使用
1、作用
Serializable
的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi 以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而 Android 的Parcelable
的设计初衷是因为Serializable
效率过慢,为了在程序内不同组件间以及不同 Android 程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,Parcelable
是通过IBinder
通信的消息的载体。
从上面的设计上我们就可以看出优劣了
2、效率及选择
Parcelable
的性能比Serializable
好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable
,如activity
间传输数据,而Serializable
可将数据持久化方便保存,所以在需要保存或网络传输数据时选择Serializable
,因为 android 不同版本Parcelable
可能不同,所以不推荐使用Parcelable
进行数据持久化。
3、编程实现
对于Serializable
,类只需要实现Serializable
接口,并提供一个序列化版本id(serialVersionUID)
即可。而Parcelable
则需要实现writeToParcel
、describeContents
函数以及静态的 CREATOR 变量,实际上就是将如何打包和解包的工作自己来定义,而序列化的这些操作完全由底层实现。
这里我就分享一份资料,希望可以帮助到大家提升进阶。
内容包含:Android 学习 PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android 开发面试专题资料,高级进阶架构资料 这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。
如果你有需要的话,可以点击Android学习PDF+架构视频+面试文档+源码笔记获取免费领取方式
喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~
评论