1. 序列化
为什么序列化?什么情况需要序列化?
序列化将对象转成字节流,便于在网络上传输或者存储在本地文件中,保留对象完整性。
进程间、线程间需要序列化么?
进程间需要序列化,因为不同进程的对象虚内存地址不同,所以不能直接使用。线程间不需要序列化
Activity的启动为什么要序列化?
因为activity的启动过程跨进程,内部也是用了Binder机制。
serializable和parcelable的区别
serializable存储在磁盘上,parcelable 存储在内存,parcelable更快
serializable (使用了反射会产生大量临时变量引发频繁GC),parcelable在内存中建立一块共享数据块,不会有这些问题。
2. hashmap的原理
https://www.jianshu.com/p/f6c9bbd2546e
这个会牵扯到ArrayMap,可能会问他俩的区别或者ArrayMap源码.
3. bitmap
位图,一种存储像素的数据结构,内存空间计算:bitmap的宽高每个像素所占的字节,每个像素占用的字节可Bitmap.config配置。
config | 字节/像素
ARGB_4444| 44=16位/8=2bytes
ARGB_8888 | 84=32/8=4bytes
ALPHA_8 | 1bytes
RGB_565 | 2bytes
加载Bitmap的方式
①将BitmapFactory.Options的inJustDecodeBounds参数设为true并加载图片。
②从BitmapFactory.Options中取出图片的原始宽高信息,它们对应于outWidth和outHeight参数。
③根据采样率的规则并结合目标View的所需大小计算出采样率inSampleSize。
④将BitmapFactory.Options的inJustDecodeBounds参数设为false,然后重新加载图片
每日三个面试题三
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 面试题包含java基础,数据结构,网络,Android,设计模式,Jvm,Kotlin等。适合中高级工程师。 一:...
- 1.Dalvik和Sun JVM 共同点 都是解释执行 byte code(字节码) 都是每个 OS 进程运行一个...
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...