• 每日一练 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()
    
  • 相关阅读:
    money 和 smallmoney
    Sql server decimal 和 numeric
    SQL server数据类型int、bigint、smallint、tinyint
    c# 的传递参数值传递与传递引用的区别,ref与out区别
    释放SQL Server占用的内存
    JavaScript学习总结(一)——JavaScript基础
    js1
    Expected URL scheme 'http' or 'https' but no colon was found
    转载:SpringBoot Process finished with exit code 0
    转载:十大经典排序算法(动图演示)
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/10892783.html
Copyright © 2020-2023  润新知