发表于: 2017-03-03 23:53:24
1 972
今天完成的事情:看面试题
明天计划的事情:
遇到的问题:
收获:
1. Https和Http的区别
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网 络协议,比http协议安全。
2. 内存溢出
内存溢出(out of memory)通俗理解就是内存不够,通常在运行APP时,所需要的内存远远超出了手机问APP分配的内存所承受大小,APP崩溃,就叫内存溢出。一般在加载多个分辨率大的图片时容易出现,需要考虑二次加载图片或者分块加载图片。
.内存泄漏
如果对象在应用中不再被使用,但由于它们在其他地方被引用,垃圾回收却不能移除它们(这样就造成了很多内存不能释放,从而导致内存溢出的现象)。
一般 使用static 修饰的 变量容易引起 内存泄露。
可以使用 LeakCanary,进行检测,避免内存泄露。
3. SharedPrefrence Apply方法与commit方法区别
这两个方法的区别在于:
1. apply没有返回值而commit返回boolean表明修改是否提交成功
2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
3. apply方法不会提示任何失败的提示。
由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。
评论