StringBuffer:如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
SQLOpenHelper 是一个抽象类,是一个帮助类,助于创建、管理数据库,有两个抽象函数,
Oncreat()和onupgrade(),oncreat()在第一次创建数据库的时候被调用,而onupgrade()则是用来升级数据库的。
疑问:onupgrade()的调用时机到底是什么?怎么实现数据库的升级的?
首先确定一点:使用SQLOpenHelper需要一个子类来继承它,例如:
以上面的类的为例子,创建对象的时候会调用构造函数,会传进一个整数作为数据库的版本号,如果这个数字比之前的数据库的版本号要大,那么系统会调用onupgrade()函数,来更新数据库,具体的更新数据库的业务逻辑代码是放在重写的onupgrade()方法里
SQLiteDataBase的函数
public long insert (String table, String nullColumnHack, ContentValues values)
String nullColumnHack, 对这个参数的理解:SQLiteDataBase是不允许插入一行空的数据,而这个参数表示的是为插入行命名为nullColumnHack,这主要是方便当发现插入行的值为空的时候,可以利用这个名字指出是那一行为空,并修改它的值
原文地址:http://4882994.blog.51cto.com/4872994/1410144