String類型與StringBuffer類型主要性能區別其實在於String是不可變的對象,所以在每次改變String對象的時候其實都等於生成一個新的String對象,而後將新指針指向新的String對象。html
StringBuffer是一個可變對象,但對它進行修改的時候不會像String那樣從新創建對象。(線程安全)java
StringBuilder是一個可變對象,它跟StringBuffer相比不是線程安全的,通常在單個線程操做的時候,速度比StringBuffer快得多。(線程非安全)android
StringBuffer支持併發操做,線程安全,適合在多線程中使用;StringBuilder不支持併發操做,線程不安全,不適合在多線程中使用。web
http://www.open-open.com/lib/view/open1431569835951.html瀏覽器
基本使用:安全
1:在XML佈局中添加WebView控件服務器
2:在Manifest文件中添加權限:<uses-permission android:name="android.permission.INTERNET"/>網絡
3:在java代碼中得到該WebView的一個引用,同時使用loadUrl()加載一個網址多線程
如:webView.loadUrl("http://www.baidu.com");併發
webView.loadUrl("file://android_asset/XX.html");
4:若是不想要打開一個系統瀏覽器,則須要爲WebView設置一個WebViewClient,並重寫方法
webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view,String url){ view.loadUrl(url); return true; } });5:設置Java腳本是否可用
webView.getSettings().setJavaScriptEnable(true);
webView.getSettings().setJavaScriptEnable(false);
利用隱式Intent打開瀏覽器並加載指定網頁:
Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent);
http://www.cnblogs.com/qianlifeng/archive/2011/03/26/1996407.html
http://www.cnblogs.com/youxilua/archive/2011/09/24/2189465.html
http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html
在Android中實現異步消息機制的方法:Handler和AsyncTask
execute():執行一個異步任務,須要咱們在代碼中調用此方法,觸發異步任務的執行。
onPreExecute():這個方法會在後臺任務開始執行以前完成,用於進行一些界面的初始化操做,好比顯示一個進度條對話框等。
doInBackground():這個方法中的全部代碼都會在子線程中運行,咱們應該在這裏去處理全部的耗時任務。
onProgressUpdate():當在後臺任務中調用publishProgress()方法後,這個方法就會很快被調用,方法中攜帶的參數就是在後臺任務中傳遞過來的。在這個方法中能夠對UI進行操做,利用參數中的數值就能夠對界面元素進行相應的更新。
onPostExecute():當後臺任務執行完畢並經過return語句返回時,這個方法就很快會被調用。返回的數據會做爲參數傳遞到此方法中,能夠利用返回的數據來進行一些UI操做。
http://blog.csdn.net/itachi85/article/details/50982995
工做原理:客戶端向服務器發出一條HTTP請求,服務器收到請求後返回一些數據給客戶端,而後客戶端再對這些數據進行解析和處理就能夠了。
HTTP協議的主要特色:
1:支持C/S模式
2:簡單快速(客戶端向服務器請求時,只需傳送請求方法和路徑)
3:靈活(HTTP運行傳送任意類型的數據對象)
4:無鏈接:(無鏈接的含義是每次鏈接請求只處理一個請求。服務端處理完客戶請求後,並收到客戶端的應答,即斷開鏈接。採用這種方式能夠節省傳輸時間)
5:無狀態:HTTP協議是無狀態的協議。無狀態是指協議對於事物的處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則必須重傳,這樣可能致使每次鏈接傳達的數據量增大。另外一方面,服務器不須要先前先前信息時它的應答就快了。
在Android上發送HTTP請求的方式:HttpURLConnection和HttpClient
1:HttpURLConnection
a、首先得到HttpURLConnection實例
URL url = new URL("http://www.baidu.com"); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();b、設置HttpURLConnection的方法(GET/POST)
GET表示但願從服務器那裏得到數據,而POST則表示但願提交數據給服務器&。
httpURLConnection.setRequestMethod("GET"); httpURLConnection.setRequestMethod("POST");c、得到服務器返回的輸入輸出流,對輸入流/輸出流進行讀/寫操做
d、調用disconnect()方法將這個http鏈接關閉掉
2:HttpClient(一個接口)
http://www.jb51.net/article/73371.htm
GET方式
a、建立一個DefaultHttpClient實例
HttpClient httpClient = new DefaultHttpClient();
b、建立一個HttpGet對象,並傳入目標的網絡地址,而後調用HttpClient的execute()方法
HttpGet httpGet = new HttpGet("http://www.baidu.com");
HttpResponse httpResponse = httpClient.execute(httpGet);
c、執行execute()方法後會返回一個HttpResponse對象,服務器所返回的全部信息就會包括在這裏面。一般狀況下咱們就會取出服務器返回的狀態碼,若是等於200就說明請求和響應都成功了。
if(httpResponse.getStatusLine().getStatusCode==200){
//請求和響應都成功了
}
POST方式
a、建立一個DefaultHttpClient的實例
HttpClient httpClient = new DefaultHttpClient();
b、建立一個HttpPost對象,並傳入目標的網絡地址
HttpPost httpPost = new HttpPost("http://www.baidu.com");
c、建立一個Entity對象,並將數據存入Enitity中。而後調用httpPost的setEntity()方法將構造好的Entity傳進去。
httpPost.setEntity(xxxx);
HttpResponse httpResponse = httpClient.execute(httpPost);
d、執行execute()方法後悔返回一個HttpResponse對象,服務器所返回的全部信息就會包含在這裏面。一般狀況下咱們都會先取出服務器所返回的狀態碼,若是等於200就說明請求和響應都成功了
if(httpResponse.getStatusLine().getStatusCode()==200){
//請求和響應成功
}
三:選擇題
1:WebView中能夠用來處理js中警告、確認等對話框的是:WebChromeClient
2:LocalManager獲取位置信息的途徑下列說法正確的是:
a、 GPS定位更加精確,缺點是隻能在戶外使用。
b、獲取用戶位置信息,咱們能夠同時使用其中一個,也能夠同時使用兩個
c、GPS定位耗電嚴重,而且返回用戶位置信息的速度遠不能知足用戶須要
3:android的MVC模式
M是邏輯模型。
V是試圖模型,對應XML文件
C是控制模型,對應Activity
4:Android的自動恢復功能可以完成:恢復備份設置和數據來從新安裝程序。
5:android的動畫類型
幀(Frame)動畫、補間動畫(Tween)、屬性動畫
6:關於ServiceConnection接口的onServiceConnected()方法的觸發條件描述正確的是:
bindService()方法成功調用的同時onBind()方法返回IBinder對象。
7:DVM指dalivk的虛擬機,每個安卓應用程序都在它本身的進程中運行,都擁有一個獨立的Dalivk虛擬機實例。而每個DVM都是Linux中的一個進程,因此說能夠認爲是同一個概念。
8:IntentService和Service的區別
IntentService是繼承Service的,那麼它包含了Sevice的所有特性,固然也包含Service的生命週期。IntentService與Service不一樣的是,IntentService在執行onCreate()方法時,內部開了一個線程,去執行耗時操做。
9:Android系統對下列哪些對象提供了資源池:Messae與AsyncTask
10:下面哪條語句能夠構造正確的對話框( B D)
B:AlertDialog.Builder builder = new AlertDialog.Builder(context);
.D:ProgressDialog dialog = new ProgressDialog(context);
11:下列哪些狀況下系統會彈出Froce Close對話框
應用運行時拋出了OutOfMemoryError,
應用運行時拋出了RuntimeException