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