編輯:關於android開發
1. Java語言基本數據類型有哪些?分別占用的內存空間是多少?
答:
byte(1字節),boolean(1字節),char(2字節),short(2字節),int(4字節),float(4字節),long(8字節),double(8字節)。
2. &和&&的區別。
答:
&:數值運算時為按位與運算,邏輯值運算時分別計算兩個表達式的值,再作與運算;
&&:邏輯與運算符,先計算第一個表達式的值,如果為true,那就計算第二個表達式的值,再作與運算,如果為false,不計算第二個表達式,直接返回false(常用)。
3. sleep() 和 wait() 有什麼區別?
答:
sleep 是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他
線程,但是監控狀態依然保持,到時後會自動恢復。調用 sleep 不會釋放對象鎖。
wait是 Object 類的方法,對此對象調用 wait 方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出 notify方法(或 notifyAll)後本線程才進入對象鎖定池准備獲得對象鎖進入運行狀態。
4. Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
答:
方法的重寫 Overriding 和重載 Overloading是 Java多態性的不同表現。重寫 Overriding是父類與子類之間多態性的一種表現,重載 Overloading 是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數, 我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded 的方法是可以改變返回值的類型。
5. 給出一個數列2,5,12,56,70,8,使用冒泡排序法實現排序後輸出。
答:
public class SortDemo{
public static void main(String[] args){
int[] nums = {2,3,12,56,70,8};
for(int i=0;i<nums.length-1;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums{j+1}){
int temp = nums[j];
nums[j]=nums[j+1];
nums[j+1] = temp;
}
}
}
System.out.println(“排序後的結果為:”);
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+” ”);
}
}
}
6. 寫出Singleton模式的代碼實現。
Singleton 模式主要作用是保證在 Java 應用程序中,一個類 Class 只有一個實例存在。
一般 Singleton 模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數為 private 的,它有一個 static的 private的該類變量,在類初始化時實例話,通過一個 public 的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是 private 只供內部調用
private static Singleton instance = new Singleton();
//這裡提供了一個供外部訪問本 class 的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance;
}
}
}
其他形式:
定義一個類,它的構造函數為 private 的,所有方法為 static 的。
一般認為第一種形式要更加安全些
7. 實現一個線程的方式有幾種,分別寫出示例代碼。
答:
兩種方式,分別是繼承Thread類和實現Runnable接口
1、繼承Thread類:
public class ThreadDemo extends Thread{
public void run(){
//實現代碼
}
}
啟動線程
new ThreadDemo().start();
2、實現Runnable接口
public class ThreadDemo implements Runnable{
public void run(){
//實現代碼
}
}
啟動線程
new Thread(new ThreadDemo()).start();
8. try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?
答:
會,在return前執行
9. 用最有效率的方法算出2乘以8等於幾?
答:
2<<3
10.面向對象的特征有哪些?簡單闡述自己的理解。
(1).抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
(2).繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(4). 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
11.RuntimeExcepion與Exception的區別
答 :
異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java 編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
12.String與StringBuffer的區別。
答:
String的長度是不可變的,StringBuffer的長度是可變的。如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法
13.列出最少10個常用的IO實現類。
FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedInputStream,
BufferedOutputStream,BufferedReader,InputStreamReader,PrintStream,PrintWriter
14.Vector類和ArrayList類的區別
答:
ArrayList與Vector主要從二方面來說.
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
15.abstract class和interface有什麼區別?
答:
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口
16.事務是什麼?
事務是單個邏輯工作單元,要麼全部做完,要麼全部不做,事務由兩種狀態,一個提交一個回滾。事務由四個特性ACID,原子性、一致性、隔離性和永遠性。
17.寫出查詢數據庫表的JDBC的連接步驟。
1、加載JDBC驅動程序
2、提供連接URL
3、建立一個數據庫的連接
4、創建一個Statement
5、執行SQL語句
6、處理結果
7、關閉JDBC對象
18.更新Student表中id為10的記錄,把name字段的值改為”jack”,age字段的值改為25,寫出SQL語句。
update Student set name=’jack’,age=25 where id=10
19.寫出查詢Student表中記錄總數的SQL語句
Select count(id) from student
20.在JDBC編程中,Statement與PreparedStatement有什麼區別
1、Statement使用字符串拼接的方式編寫SQL語句,PreparedStatement使用占位符的方式編寫SQL語句,PreparedStatement方式的可讀性和可維護性更強;
2、PreparedStatement盡最大可能提高性能,在被DB的編譯器編譯後的執行代碼被緩存下來,那麼下次調用時只要是相同的預編譯語句就不需要編譯,只要將參數直接傳入編譯過的語句執行代碼中就會得到執行,而Statement則每次執行都必須編譯語句。
3、PreparedStatement具有防SQL注入的安全處理,而Statement容易被SQL注入,安全性差
21.Collection 和 Collections的區別
答:Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作
22.分別解釋java中的4種訪問修飾符的用法。
作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √
× × ×
23. 常用的設計模式有哪些,並闡述作用。
Java 中的 23 種設計模式:
Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法
模式),
Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式),
Adapter(適配器模式), Bridge(橋梁模式), Composite(合成模式),
Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),
Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),
Iterator(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式),
Observer(觀察者模式), State(狀態模式), Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(責任鏈模式)
24. 請簡述Android的四大基本組件。
Android四大基本組件分別是Activity,Service服務,Content Provider內容提供者,BroadcastReceiver廣播接收器。
Activity :
應用程序中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些控件也可以監聽並處理用戶的事件做出響應。
BroadcastReceive廣播接收器:
你的應用可以使用它對外部事件進行過濾只對感興趣的外部事件(如當電話呼入時,或者數據網絡可用時)進行接收並做出響應。
Service 服務:
一個Service 是一段長生命周期的,沒有用戶界面的程序,可以用來開發如監控類程序。
Content Provider內容提供者 :
android平台提供了Content Provider使一個應用程序的指定數據集提供給其他應用程序。
25. 請簡述Handler工作機制。
andriod提供了 Handler 和 Looper 來滿足線程間的通信。
Handler 先進先出原則。
Looper類用來管理特定線程內對象之間的消息交換(Message Exchange)。
1)Looper: 一個線程可以產生一個Looper對象,由它來管理此線程裡的Message Queue(消息隊列)。
2)Handler: 你可以構造Handler對象來與Looper溝通,以便push新消息到Message Queue裡;或者接收Looper從Message Queue取出)所送來的消息。
3) Message Queue(消息隊列):用來存放線程放入的消息。
4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue。
26. 在android中使用SQLiteOpenHelper這個輔助類時,可以生成一個數據庫,並可以對數據庫版本進行管理的方法是哪兩個?
public void onCreate(SQLiteDatabase db) {}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
27. Android中常用的五種布局分別是?
AbsoluteLayout,FrameLayout,LinearLayout,RelativeLayout,TableLayout
28. Android的五種數據存儲方式
SharedPreferences
文件
SQLite數據庫
ContentProvider
網絡
29. android 中有哪幾種方式解析xml?分別有什麼優缺點?
3種
SAX: 優點:占用內存小,解析速度快,解析屬性方便,缺點:靈活性較差
DOM: 優點:可以任意讀取節點,靈活性高,API與集合類似,缺點:占用一定的內存空間
PULL: 與SAX原理類似具備SAX方式的所有優點,不同的地方是,PULL提供了更方便解析的API,方便操作
30. 談談Android的IPC(或稱RPC)機制
IPC是內部進程通信的簡稱,是共享“命名管道”的資源。Android中的IPC機制是為了讓Activity和Service之間的通信,類似於遠程方法調用,類似於C/S模式的訪問。通過定義AIDL接口文件來定義IPC接口。Server端實現IPC接口,Client端調用IPC接口本地代理。
31. 編程題:實現網絡文件下載功能
要求:
(1) 下載地址為:http://www.github.com/finally-vince/android.rar
(2) 下載目的地:android手機sdcard根目錄
(3) 寫出核心方法即可。
public String download(){
String actionUrl = "http://www.github.com/finally-vince/android.rar";
try {
URL url = new URL(actionUrl);
URLConnection conn = url.openConnection();
int start = actionUrl.lastIndexOf(".");
String filename = actionUrl.substring(start);
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/sdcard/"+System.currentTimeMillis()+filename));
int len =-1;
byte[] bytes = new byte[1024*10];
while((len=bis.read(bytes))!=-1){
bos.write(bytes,0,len);
}
bos.close();
bis.close();
return "success";
} catch (IOException e) {
e.printStackTrace();
return "error";
}
}
簡答題
注意:在答題前請在答題卡上寫好姓名,答案填寫在答題卡上。
1. Java語言基本數據類型有哪些?分別占用的內存空間是多少?
答:
byte(1字節),boolean(1字節),char(2字節),short(2字節),int(4字節),float(4字節),long(8字節),double(8字節)。
2. &和&&的區別。
答:
&:數值運算時為按位與運算,邏輯值運算時分別計算兩個表達式的值,再作與運算;
&&:邏輯與運算符,先計算第一個表達式的值,如果為true,那就計算第二個表達式的值,再作與運算,如果為false,不計算第二個表達式,直接返回false(常用)。
3. sleep() 和 wait() 有什麼區別?
答:
sleep 是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他
線程,但是監控狀態依然保持,到時後會自動恢復。調用 sleep 不會釋放對象鎖。
wait是 Object 類的方法,對此對象調用 wait 方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出 notify方法(或 notifyAll)後本線程才進入對象鎖定池准備獲得對象鎖進入運行狀態。
4. Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
答:
方法的重寫 Overriding 和重載 Overloading是 Java多態性的不同表現。重寫 Overriding是父類與子類之間多態性的一種表現,重載 Overloading 是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數, 我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded 的方法是可以改變返回值的類型。
5. 給出一個數列2,5,12,56,70,8,使用冒泡排序法實現排序後輸出。
答:
public class SortDemo{
public static void main(String[] args){
int[] nums = {2,3,12,56,70,8};
for(int i=0;i<nums.length-1;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums{j+1}){
int temp = nums[j];
nums[j]=nums[j+1];
nums[j+1] = temp;
}
}
}
System.out.println(“排序後的結果為:”);
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+” ”);
}
}
}
6. 寫出Singleton模式的代碼實現。
Singleton 模式主要作用是保證在 Java 應用程序中,一個類 Class 只有一個實例存在。
一般 Singleton 模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數為 private 的,它有一個 static的 private的該類變量,在類初始化時實例話,通過一個 public 的getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是 private 只供內部調用
private static Singleton instance = new Singleton();
//這裡提供了一個供外部訪問本 class 的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance;
}
}
}
其他形式:
定義一個類,它的構造函數為 private 的,所有方法為 static 的。
一般認為第一種形式要更加安全些
7. 實現一個線程的方式有幾種,分別寫出示例代碼。
答:
兩種方式,分別是繼承Thread類和實現Runnable接口
1、繼承Thread類:
public class ThreadDemo extends Thread{
public void run(){
//實現代碼
}
}
啟動線程
new ThreadDemo().start();
2、實現Runnable接口
public class ThreadDemo implements Runnable{
public void run(){
//實現代碼
}
}
啟動線程
new Thread(new ThreadDemo()).start();
8. try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?
答:
會,在return前執行
9. 用最有效率的方法算出2乘以8等於幾?
答:
2<<3
10.面向對象的特征有哪些?簡單闡述自己的理解。
(1).抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
(2).繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(4). 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
11.RuntimeExcepion與Exception的區別
答 :
異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java 編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
12.String與StringBuffer的區別。
答:
String的長度是不可變的,StringBuffer的長度是可變的。如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法
13.列出最少10個常用的IO實現類。
FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedInputStream,
BufferedOutputStream,BufferedReader,InputStreamReader,PrintStream,PrintWriter
14.Vector類和ArrayList類的區別
答:
ArrayList與Vector主要從二方面來說.
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
15.abstract class和interface有什麼區別?
答:
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口
16.事務是什麼?
事務是單個邏輯工作單元,要麼全部做完,要麼全部不做,事務由兩種狀態,一個提交一個回滾。事務由四個特性ACID,原子性、一致性、隔離性和永遠性。
17.寫出查詢數據庫表的JDBC的連接步驟。
1、加載JDBC驅動程序
2、提供連接URL
3、建立一個數據庫的連接
4、創建一個Statement
5、執行SQL語句
6、處理結果
7、關閉JDBC對象
18.更新Student表中id為10的記錄,把name字段的值改為”jack”,age字段的值改為25,寫出SQL語句。
update Student set name=’jack’,age=25 where id=10
19.寫出查詢Student表中記錄總數的SQL語句
Select count(id) from student
20.在JDBC編程中,Statement與PreparedStatement有什麼區別
1、Statement使用字符串拼接的方式編寫SQL語句,PreparedStatement使用占位符的方式編寫SQL語句,PreparedStatement方式的可讀性和可維護性更強;
2、PreparedStatement盡最大可能提高性能,在被DB的編譯器編譯後的執行代碼被緩存下來,那麼下次調用時只要是相同的預編譯語句就不需要編譯,只要將參數直接傳入編譯過的語句執行代碼中就會得到執行,而Statement則每次執行都必須編譯語句。
3、PreparedStatement具有防SQL注入的安全處理,而Statement容易被SQL注入,安全性差
21.Collection 和 Collections的區別
答:Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作
22.分別解釋java中的4種訪問修飾符的用法。
作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √
× × ×
23. 常用的設計模式有哪些,並闡述作用。
Java 中的 23 種設計模式:
Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法
模式),
Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式),
Adapter(適配器模式), Bridge(橋梁模式), Composite(合成模式),
Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),
Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),
Iterator(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式),
Observer(觀察者模式), State(狀態模式), Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(責任鏈模式)
24. 請簡述Android的四大基本組件。
Android四大基本組件分別是Activity,Service服務,Content Provider內容提供者,BroadcastReceiver廣播接收器。
Activity :
應用程序中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些控件也可以監聽並處理用戶的事件做出響應。
BroadcastReceive廣播接收器:
你的應用可以使用它對外部事件進行過濾只對感興趣的外部事件(如當電話呼入時,或者數據網絡可用時)進行接收並做出響應。
Service 服務:
一個Service 是一段長生命周期的,沒有用戶界面的程序,可以用來開發如監控類程序。
Content Provider內容提供者 :
android平台提供了Content Provider使一個應用程序的指定數據集提供給其他應用程序。
25. 請簡述Handler工作機制。
andriod提供了 Handler 和 Looper 來滿足線程間的通信。
Handler 先進先出原則。
Looper類用來管理特定線程內對象之間的消息交換(Message Exchange)。
1)Looper: 一個線程可以產生一個Looper對象,由它來管理此線程裡的Message Queue(消息隊列)。
2)Handler: 你可以構造Handler對象來與Looper溝通,以便push新消息到Message Queue裡;或者接收Looper從Message Queue取出)所送來的消息。
3) Message Queue(消息隊列):用來存放線程放入的消息。
4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue。
26. 在android中使用SQLiteOpenHelper這個輔助類時,可以生成一個數據庫,並可以對數據庫版本進行管理的方法是哪兩個?
public void onCreate(SQLiteDatabase db) {}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
27. Android中常用的五種布局分別是?
AbsoluteLayout,FrameLayout,LinearLayout,RelativeLayout,TableLayout
28. Android的五種數據存儲方式
SharedPreferences
文件
SQLite數據庫
ContentProvider
網絡
29. android 中有哪幾種方式解析xml?分別有什麼優缺點?
3種
SAX: 優點:占用內存小,解析速度快,解析屬性方便,缺點:靈活性較差
DOM: 優點:可以任意讀取節點,靈活性高,API與集合類似,缺點:占用一定的內存空間
PULL: 與SAX原理類似具備SAX方式的所有優點,不同的地方是,PULL提供了更方便解析的API,方便操作
30. 談談Android的IPC(或稱RPC)機制
IPC是內部進程通信的簡稱,是共享“命名管道”的資源。Android中的IPC機制是為了讓Activity和Service之間的通信,類似於遠程方法調用,類似於C/S模式的訪問。通過定義AIDL接口文件來定義IPC接口。Server端實現IPC接口,Client端調用IPC接口本地代理。
31. 編程題:實現網絡文件下載功能
要求:
(1) 下載地址為:http://www.github.com/finally-vince/android.rar
(2) 下載目的地:android手機sdcard根目錄
(3) 寫出核心方法即可。
public String download(){
String actionUrl = "http://www.github.com/finally-vince/android.rar";
try {
URL url = new URL(actionUrl);
URLConnection conn = url.openConnection();
int start = actionUrl.lastIndexOf(".");
String filename = actionUrl.substring(start);
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/sdcard/"+System.currentTimeMillis()+filename));
int len =-1;
byte[] bytes = new byte[1024*10];
while((len=bis.read(bytes))!=-1){
bos.write(bytes,0,len);
}
bos.close();
bis.close();
return "success";
} catch (IOException e) {
e.printStackTrace();
return "error";
}
}
http://www.bkjia.com/Androidjc/1192462.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/1192462.htmlTechArticleAndroid面試題(1),android面試題 1. Java 語言基本數據類型有哪些?分別占用的內存空間是多少? 答: byte(1 字節 ) , boolean(1 字節 ) , cha...
Android模擬登錄評論CSDN 有時候作為非官方開發的APP集成了官方的所有信息,但是現在需要實現另一個功能那就是登錄發表評論到官方的網站,而非官方的APP並不知道官
Android 動態創建Fragment,androidfragmentFragment是activity的界面中的一部分或一種行為。可以把多個Fragment組合到一個
Android快樂貪吃蛇游戲實戰項目開發教程-03虛擬方向鍵(二)繪制一個三角形,android-03該系列教程概述與目錄:http://www.cnblogs.com/
側滑2,側滑如下圖是側滑的效果圖 &