安卓面试题_安卓开发面经(21/30)之序列化全解析
牛客高级系列专栏:
安卓(安卓系统开发也要掌握)
- 想通关安卓面试,请看(承诺免费售后答疑):《150道安卓高频面试题目录及答案链接》
- 想通关安卓系统面试,请看:《140道安卓系统Framework面试题目录及答案链接》
- 想进阶安卓开发,请看(承诺免费售后答疑):《Android进阶知识体系解析_15大安卓进阶必备知识点》
- 想了解安卓APP完整开发流程,请看(承诺免费售后答疑):《安卓APP完整开发流程》
- 想掌握安卓App性能优化,请看(承诺免费售后答疑):《安卓性能优化讲解和实战专栏》
- 想掌握Gradle语法和配置,制作Gradle插件,请看(承诺免费售后答疑):《安卓Gradle语法解析和实践大全》
嵌入式
- 想通关嵌入式面试,请看: 《111道嵌入式面试题目录及答案链接》
- 想多掌握几个嵌入式项目,请看:《6个嵌入式项目交流分享(附源码)》
本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,该专栏整理本人对常见安卓高频开发面试题的理解;
网上安卓资料千千万,笔者将继续维护专栏,一杯奶茶价格不止提供答案解析,承诺提供专栏内容免费技术答疑,直接咨询即可。助您提高安卓面试准备效率,为您面试保驾护航!
正文开始⬇
序列化问的问题不算多,掌握以下几个基本就够了。面试官可能会问:
- 序列化是什么?⭐⭐⭐⭐
- 序列化的作用?什么时候需要序列化? ⭐⭐⭐⭐
- Android中序列化方式有几种?说说它们的区别。⭐⭐⭐⭐⭐
- Bunder传递对象为什么需要序列化?⭐⭐⭐ 看完以下的解析,一定可以让面试官眼前一亮。
目录
- 1、序列化是什么?序列化的作用?什么时候需要序列化?
- 2、如何实现序列化?
- 2.1 Serializable
- 2.2 Parcelable
- 2.2.1 使用方法
- 2.2.2 Parcelable解析
- 3、Bunder传递对象为什么需要序列化?
- 4、Android为什么引入Parcelable?Serialzable和Parcelable的区别?
1、序列化是什么?序列化的作用?什么时候需要序列化?
字节流便于存储且便于传输,序列化的作用有:
- 进行网络传输:将对象或者信息数据转换为字节流格式,特别是Base64格式,并通过网络传输给其他人;
- 本地永久性存储:将对象转换为字节流并存放于内存,等到需要用到该对象的时候,再从内存读取字节流并再次构建出该对象;
- 进行IPC传输:如需要将某个对象的信息传输给其他的进程,则需要先进行序列化,传输到其他进程后,再将其反序列化构建出原来的对象; 那么,针对将对象转换为字节流的过程称之为“序列化”,而将字节流再次构建为对象的则是“反序列化”。
2、如何实现序列化
在Android中有两种实现序列化的方式:
2.1 Serializable
这是Java自带的序列化方法,可以通过实现Serializable接口来实现序列化。序列化后的对象可以进行网络传输,也可以存储到本地磁盘。然而这个方式并不推荐,因为其内部实现原理是通过Java的反射机制,该机制效率相对低,同时会产生很多临时对象,因此就需要频繁地进行垃圾回收;
//构建一个实现了Serializable接口的类
public class XrData implements Serializable {
public String name;
public String phone;
}
//序列化
public static MyFragment newInstance(XrData entity) {
MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("DATA", entity); //1
fragment.setArguments(bundle);
return fragment;
}
//反序列化
private void setData(){
mContact = (XrData) getArguments().getSerializable("DATA"); //2
if(mContact != null) {
contact_name.setText(mContact.name);
contact_phone.setText(mContact.phone);
}
}
上面注释1就是将entity变量进行序列化,转换为字节流
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Android高频面试题全解析 文章被收录于专栏
#提供免费售后答疑!!花一杯奶茶的钱获得安卓面试答疑服务,稳赚不赔# Android发展已经很多年,安卓资料网上千千万,本专栏免费提供专栏内容技术答疑!!私聊当天必回。在阅读过程或者其他安卓学习过程有疑问,都非常欢迎私聊交流。