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,這主要是方便當發現插入行的值爲空的時候,能夠利用這個名字指出是那一行爲空,並修改它的值