首页 > 代码库 > 总结---5

总结---5

StringBuffer如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高

String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

SQLOpenHelper 是一个抽象类,是一个帮助类,助于创建、管理数据库,有两个抽象函数,

Oncreat()和onupgrade(),oncreat()在第一次创建数据库的时候被调用,而onupgrade()则是用来升级数据库的。

疑问:onupgrade()的调用时机到底是什么?怎么实现数据库的升级的?

首先确定一点:使用SQLOpenHelper需要一个子类来继承它,例如:

wKiom1Nw5dXRum5fAAFyMx66op0165.jpg

以上面的类的为例子,创建对象的时候会调用构造函数,会传进一个整数作为数据库的版本号,如果这个数字比之前的数据库的版本号要大,那么系统会调用onupgrade()函数,来更新数据库,具体的更新数据库的业务逻辑代码是放在重写的onupgrade()方法里


SQLiteDataBase的函数

public long insert (String table, String nullColumnHack, ContentValues values)

String nullColumnHack, 对这个参数的理解:SQLiteDataBase是不允许插入一行空的数据,而这个参数表示的是为插入行命名为nullColumnHack,这主要是方便当发现插入行的值为空的时候,可以利用这个名字指出是那一行为空,并修改它的值