微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于Flutter文本组件Widget的全面解读,架构师必备技能

我们都是被圈养的人?

我的朋友程序员K,说他在电力行业的一家软件公司做了八年Android开发,用到的各种技术,数据库,网络请求,事件传递,响应框架都很熟悉,甚至JNI/NDK/Framework,JS、Server端开发都能玩儿转,个人也是部门骨干。

因为疫情,今年公司项目锐减,已经签的项目,也迟迟不能开始,公司难以运转,就做了一些优化。K原本不在被优化之列,但他觉得留下来也意义不大,就主动申请了一个名额,拿了几个月赔偿金,出来找工作。

K对找工作本来信心满满,谁知道一面试,连“熟悉SSM吗?用它们做过项目吗?”、“微服务架构在项目中用过吗?”这些问题都难以回答,饱受打击。找了一个多月,虽然拿到了两个Offer,但是公司规模、待遇等,都还不如原来,K感到非常沮丧,严重怀疑自己做错了选择,产生了回老东家的想法,K何尝不是很多35岁以上程序员的缩影?

K的情况让我想起2018年,IBM裁员时我所接触到了几个年近四十的程序员,也是类似的情况,原本拿着高薪也不怎么加班,工作和生活都有滋有味,可是忽然间遭遇优化,被抛到市场上找工作,才发现自己竟然在技术、思维等方方面面都跟不上了,连那些自己从前瞧都懒得瞧的小公司,居然也反转过来瞧不上自己了。

我接触到的人非常有限,就遇到了这么多“放心跟着公司发展结果失去竞争力”的情况,那整个职场,还不知道有多少人,像K这样被公司圈养,结果来到自由竞争的市场,忽然发现自己失去了议价能力,面临被淘汰的命运。

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变量,实际上就是将如何打包和解包
的工作自己来定义,而序列化的这些操作完全由底层实现。

最后

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看api文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析

真题解析**

[外链图片转存中…(img-KuVDzpGS-1620279951810)]

资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图,大家可以**点击这里自行获取**。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐