每日一练 20190525

1.描述一下Android数据持久存储方式?

参考回答:Android平台实现数据持久存储的常见几种方式:

SharedPreferences存储:一种轻型的数据存储方式,本质是基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息(如应用程序的各种配置信息);
SQLite数据库存储:一种轻量级嵌入式数据库引擎,它的运算速度非常快,占用资源很少,常用来存储大量复杂的关系数据;
ContentProvider:四大组件之一,用于数据的存储和共享,不仅可以让不同应用程序之间进行数据共享,还可以选择只对哪一部分数据进行共享,可保证程序中的隐私数据不会有泄漏风险;
File文件存储:写入和读取文件的方法和 Java中实现I/O的程序一样;
网络存储:主要在远程的服务器中存储相关数据,用户操作的相关数据可以同步到服务器上;

 2.SharedPreferences的应用场景?注意事项?

参考回答:

SharedPreferences是一种轻型的数据存储方式,本质是基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息,如int,String,boolean、float和long;
注意事项:

勿存储大型复杂数据,这会引起内存GC、阻塞主线程使页面卡顿产生ANR
勿在多进程模式下,操作Sp
不要多次edit和apply,尽量批量修改一次提交
建议apply,少用commit

 3.SharedPrefrences的apply和commit有什么区别?

参考回答:

apply没有返回值而commit返回boolean表明修改是否提交成功。
apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
apply方法不会提示任何失败的提示。 由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。

 4.了解SQLite中的事务操作吗?是如何做的

参考回答:

SQLite在做CRDU操作时都默认开启了事务,然后把SQL语句翻译成对应的SQLiteStatement并调用其相应的CRUD方法,此时整个操作还是在rollback journal这个临时文件上进行,只有操作顺利完成才会更新db数据库,否则会被回滚;

 5.使用SQLite做批量操作有什么好的方法吗?

参考回答:

    使用SQLiteDatabase的beginTransaction方法开启一个事务,将批量操作SQL语句转化为SQLiteStatement并进行批量操作,结束后endTransaction()

 

转载于:https://www.cnblogs.com/jiayonghua/p/10892783.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
影分身是一种在忍者世界中常见的特殊技能,也是《火影忍者》中的一个重要元素。每个人都可以通过影分身术创造出许多个分身,这些分身可以同时进行各种活动。类比于影分身术,CSDN每日一练就像是一个模拟的技能训练场。每天CSDN都会发布一道题目供广大程序员参与练习。 参与影分身CSND每日一练的好处有许多。首先,通过每日一练,程序员们可以不断提高自己的编程能力。就像影分身可以通过快速反应和高效操作来增强自己的实力一样,参与每日一练可以锻炼程序员的编程思维和解决问题的能力。 其次,每日一练还可以丰富程序员的知识储备。每道题目都是经过精心挑选和设计的,涵盖了各种常见的编程知识点和技巧。通过解答这些问题,程序员们能够接触到各种新的问题和方法,扩展自己的知识领域。 另外,参与每日一练还可以增强程序员的交流与学习能力。在每道题目下方,CSDN提供了评论区供程序员们交流和讨论。程序员们可以在这里分享自己的解题思路和方法,互相学习和进步。这不仅能够提高解题能力,还能够拓宽视野,了解不同的编程思维和技术。 综上所述,影分身CSND每日一练就像是一个虚拟的技能训练场,可以帮助程序员们不断提升自己的编程能力,丰富知识储备,增强交流与学习能力。参与其中,每个程序员都能像影分身一样变得更加强大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值