android面試題

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   color   os   使用   

1、Activity的生命週期

2、Service的生命週期

3、Service和Activity在同一個線程嗎

預設情況下是在同一個主線程中。但可以通過清單中android:process屬性配置不同的進程。

4、java中的soft reference是個什麼東西

    如果一個對象只具有軟引用,則記憶體空間足夠,記憶體回收行程就不會回收它;如果記憶體空間不足了,就會回收這些對象的記憶體。只要記憶體回收行程沒有回收它,該對象就可以被程式使用。軟引用可用來實現記憶體敏感的快取。

    軟引用可以和一個引用隊列(ReferenceQueue)聯合使用,如果軟引用所引用的對象被記憶體回收行程回收,Java虛擬機器就會把這個軟引用加入到與之關聯的引用隊列中。

5,內部類機制

一、定義

放在一個類的內部的類我們就叫內部類。

二、 作用

1).內部類可以很好的實現隱藏

 一般的非內部類,是不允許有 private 與protected許可權的,但內部類可以

2).內部類擁有外圍類的所有元素的存取權限

3).可是實現多重繼承

4).可以避免修改介面而實現同一個類中兩種同名方法的調用

6,說一下java中的封裝、抽象、繼承和多態

封裝:在 物件導向語言中,封裝特性是由類來體現的,我們將現實生活中的一類實體定義成類,其中包括屬性和行為(在Java中就是方法),就好像人類,           可以具有name,sex,age等屬性,同時也具有eat(),sleep()等行為,我們在行為中實現一定的功能,也可操作屬性,這是物件導向的封裝 特性; 
抽象:抽象就是將一類實體的共同特性抽象出來,封裝在一個抽象類別中,所以抽象在物件導向語言是由抽象類別來體現的。比如鳥就是一個抽象實體,因為抽象         實體並不是一個真正的對象,它的屬性還不能完全描述一個對象,所以在語言中體現為抽象類別不能執行個體化; 
繼承:繼承就像是我們現實生活中的父子關係,兒子可以遺傳父親的一些特性,在物件導向語言中,就是一個類可以繼承另一個類的一些特性,從而可以代碼         重用,其實繼承體現的是is-a關係,父類同子類在本質上還是一類實體; 
多態:多態就是通過傳遞給父類對象引用不同的子類對象從而表現出不同的行為,多態可為程式提供更好的可擴充性,同樣也可以代碼重用。

7,private、protected、default、public

1、private修飾詞,表示成員是私人的,只有自身可以訪問;   

2、protected,表示受保護許可權,體現在繼承,即子類可以訪問父類受保護的成員,同時相同包內的其他類也可以訪問protected成員。   

3、無修飾詞(預設),表示包存取權限(friendly, java語言中是沒有friendly這個修飾符的,這樣稱呼應該是來源於c++ ),同一個包內可以訪問,存取權限是包級存取權限;  

4、public修飾詞,表示成員是公開的,所有其他類都可以訪問;

8,說一下你對service的理解

   service是四大組件之一,適用於處理長時間操作又不需要與使用者互動的情況或者提供與其他應用程式互動的功能。

9,四大組件都用過哪些,簡單的介紹一下它們的用法

Activity :

     應用程式中,一個Activity通常就是一個單獨的螢幕,它上面可以顯示一些控制項也可以監聽並處理使用者的事件做出響應。

BroadcastReceiver廣播接收器:

    應用程式可以使用它對外來事件進行過濾只對感興趣的外來事件(如當電話呼入時,或者資料網路可用時)進行接收並做出響應。廣播接收器沒有使用者介面。然而,它們可以啟動一個activity或serice 來響應它們收到的資訊,或者用NotificationManager 來通知使用者。通知可以用很多種方式來吸引使用者的注意力──閃動背燈、震動、播放聲音等。一般來說是在狀態列上放一個持久的表徵圖,使用者可以開啟它並擷取訊息。

Service 服務:

    一個Service 是一段長生命週期的,沒有使用者介面的程式,可以用來開發如監控類程式。

Content Provider內容提供者 :

     android平台提供了Content Provider使一個應用程式的指定資料集提供給其他應用程式。這些資料可以儲存在檔案系統中、在一個SQLite資料庫、或以任何其他合理的方式。其他應用可以通過ContentResolver類(見ContentProviderAccessApp例子)從該內容提供者中擷取或存入資料.(相當於在應用外包了一層殼),只有需要在多個應用程式間共用資料是才需要內容提供者。例如,通訊錄資料被多個應用程式使用,且必須儲存在一個內容提供者中。

    它的好處:統一資料訪問方式。

10,udp和TCP的不同之處

UDP:1,每個資料報中都給出了完整的地址資訊,因此無需要建立發送方和接收方的串連。          

         2 ,UDP傳輸資料時是有大小限制的,每個被傳輸的資料報必須限定在64KB之內。         

         3,UDP是一個不可靠的協議,發送方所發送的資料報並不一定以相同的次序到達接收方 

TCP: 1,連線導向的協議,在socket之間進行資料轉送之前必然要建立串連,所以在TCP中需要串連時間。          

         2,TCP傳輸資料大小限制,一旦串連建立起來,雙方的socket就可以按統一的格式傳輸大的資料。 

         3,TCP是一個可靠的協議,它確保接收方完全正確地擷取發送方所發送的全部資料。

11,在哪些情況下java代碼中需要調用C代碼

     1、在程式對時間敏感或對效能要求特別高時,有必要用更底層的語言

     2、在已經有現成的用其他語言完成的功能時,需要用java直接調用

     3、在需要用到java標準平台不具備的依賴於作業系統的特性時

12,介紹一下android中的task

    Task,簡單的說,就是一組以棧的模式聚集在一起的Activity組件集合。它們有潛在的前後驅關聯,新加入的Activity組件,位於棧頂,並僅有在棧頂的Activity,才會有機會與使用者進行互動。而當棧頂的 Activity完成使命退出的時候,Task會將其退棧,並讓下一個將跑到棧頂的Activity來於使用者面對面,直至棧中再無更多 Activity,Task結束。

13,Activity的啟動模式 

Activity啟動模式設定:

         <activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四種啟動模式:

    1. standard

        模式啟動模式,每次啟用Activity時都會建立Activity,並放入任務棧中。

    2. singleTop

        如果在任務的棧頂正好存在該Activity的執行個體, 就重用該執行個體,否者就會建立新的執行個體並放入棧頂(即使棧中已經存在該Activity執行個體,只要不在棧頂,都會建立執行個體)。 

    3. singleTask

        如果在棧中已經有該Activity的執行個體,就重用該執行個體(會調用執行個體的onNewIntent())。重用時,會讓該執行個體回到棧頂,因此在它上面的執行個體將會被移除棧。如果棧中不存在該執行個體,將會建立新的執行個體放入棧中。 

    4. singleInstance

        在一個新棧中建立該Activity執行個體,並讓多個應用共用此棧中的該Activity執行個體。一旦該模式的Activity的執行個體存在於某個棧中,任何應用再啟用該Activity時都會重用該棧中的執行個體,其效果相當於多個應用程式共用一個應用,不管誰啟用該Activity都會進入同一個中。

15,java中final定義的類有什麼特點

     不能被繼承

16.service裡面可以彈土司麼

     可以。     

 Handler handler=new Handler(Looper.getMainLooper());          handler.post(new Runnable(){              public void run(){                  Toast.makeText(getApplicationContext(), "Hello Android!", Toast.LENGTH_LONG).show();              }          });

 

android面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.