1. 程式人生 > >100道android面試題

100道android面試題

1.Android系統的架構

  1. Android系統架構之應用程式 
    Android會同一系列核心應用程式包一起釋出,該應用程式包包括email客戶端,SMS短訊息程式,日曆,地圖,瀏覽器,聯絡人管理程式等。所有的應用程式都是使用JAVA語言編寫的。
  2. Android系統架構之應用程式框架 
    開發人員可以完全訪問核心應用程式所使用的API框架(android.jar)。該應用程式的架構設計簡化了元件的重用;任何一個應用程式都可以釋出它的功能塊並且任何其它的應用程式都可以使用其所釋出的功能塊。
  3. Android系統架構之系統執行庫 
    Android 包含一些C/C++庫,這些庫能被Android系統中不同的元件使用。它們通過 Android 應用程式框架為開發者提供服務。
  4. Android系統架構之Linux 核心 
    Android 的核心繫統服務依賴於 Linux 2.6 核心,如安全性,記憶體管理,程序管理, 網路協議棧和驅動模型。 Linux 核心也同時作為硬體和軟體棧之間的抽象層。

2.activity的生命週期

Activity生命週期方法主要有onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()等7個方法。

  • 啟動一個A Activity,分別執行onCreate()、onStart()、onResume()方法。
  • 從A Activity開啟B Activity分別執行A onPause()、B onCreate()、B onStart()、B onResume()、A onStop()方法。
  • 關閉B Activity,分別執行B onPause()、A onRestart()、A onStart()、A onResume()、B onStop()、B onDestroy()方法。
  • 橫豎屏切換A Activity,清單檔案中不設定android:configChanges屬性時,先銷燬onPause()、onStop()、onDestroy()再重新建立onCreate()、onStart()、onResume()方法,設定orientation|screenSize(一定要同時出現)屬性值時,不走生命週期方法,只會執行onConfigurationChanged()方法。
  • Activity之間的切換可以看出onPause()、onStop()這兩個方法比較特殊,切換的時候onPause()方法不要加入太多耗時操作否則會影響體驗。

3.Fragment的生命週期

Fragment的生命週期

Fragment與Activity生命週期對比

Fragment的生命週期方法主要有onAttach()、onCreate()、onCreateView()、onActivityCreated()、onstart()、onResume()、onPause()、onStop()、onDestroyView()、onDestroy()、onDetach()等11個方法。

  • 切換到該Fragment,分別執行onAttach()、onCreate()、onCreateView()、onActivityCreated()、onstart()、onResume()方法。
  • 鎖屏,分別執行onPause()、onStop()方法。
  • 亮屏,分別執行onstart()、onResume()方法。
  • 覆蓋,切換到其他Fragment,分別執行onPause()、onStop()、onDestroyView()方法。
  • 從其他Fragment回到之前Fragment,分別執行onCreateView()、onActivityCreated()、onstart()、onResume()方法。

4.Service生命週期

在Service的生命週期裡,常用的有:

4個手動呼叫的方法

startService()  啟動服務
stopService()   關閉服務
bindService()   繫結服務
unbindService() 解綁服務

5個內部自動呼叫的方法

onCreat()           建立服務
onStartCommand()    開始服務
onDestroy()         銷燬服務
onBind()            繫結服務
onUnbind()          解綁服務
  1. 手動呼叫startService()啟動服務,自動呼叫內部方法:onCreate()、onStartCommand(),如果一個Service被startService()多次啟動,那麼onCreate()也只會呼叫一次。
  2. 手動呼叫stopService()關閉服務,自動呼叫內部方法:onDestory(),如果一個Service被啟動且被繫結,如果在沒有解綁的前提下使用stopService()關閉服務是無法停止服務的。
  3. 手動呼叫bindService()後,自動呼叫內部方法:onCreate()、onBind()。
  4. 手動呼叫unbindService()後,自動呼叫內部方法:onUnbind()、onDestory()。
  5. startService()和stopService()只能開啟和關閉Service,無法操作Service,呼叫者退出後Service仍然存在;bindService()和unbindService()可以操作Service,呼叫者退出後,Service隨著呼叫者銷燬。

5.Android中動畫

Android中動畫分別幀動畫、補間動畫和屬性動畫(Android 3.0以後的)

幀動畫

幀動畫是最容易實現的一種動畫,這種動畫更多的依賴於完善的UI資源,他的原理就是將一張張單獨的圖片連貫的進行播放,從而在視覺上產生一種動畫的效果;有點類似於某些軟體製作gif動畫的方式。在有些程式碼中,我們還會看到android:oneshot=”false” ,這個oneshot 的含義就是動畫執行一次(true)還是迴圈執行多次。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/a_0"
        android:duration="100" />
    <item
        android:drawable="@drawable/a_1"
        android:duration="100" />
    <item
        android:drawable="@drawable/a_2"
        android:duration="100" />
</animation-list>

補間動畫

補間動畫又可以分為四種形式,分別是 alpha(淡入淡出),translate(位移),scale(縮放大小),rotate(旋轉)。 
補間動畫的實現,一般會採用xml 檔案的形式;程式碼會更容易書寫和閱讀,同時也更容易複用。Interpolator 主要作用是可以控制動畫的變化速率 ,就是動畫進行的快慢節奏。pivot 決定了當前動畫執行的參考位置

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

屬性動畫

屬性動畫,顧名思義它是對於物件屬性的動畫。因此,所有補間動畫的內容,都可以通過屬性動畫實現。屬性動畫的執行機制是通過不斷地對值進行操作來實現的,而初始值和結束值之間的動畫過渡就是由ValueAnimator這個類來負責計算的。它的內部使用一種時間迴圈的機制來計算值與值之間的動畫過渡,我們只需要將初始值和結束值提供給ValueAnimator,並且告訴它動畫所需執行的時長,那麼ValueAnimator就會自動幫我們完成從初始值平滑地過渡到結束值這樣的效果。除此之外,ValueAnimator還負責管理動畫的播放次數、播放模式、以及對動畫設定監聽器等。

6.Android中4大元件

  1. Activity:Activity是Android程式與使用者互動的視窗,是Android構造塊中最基本的一種,它需要為保持各介面的狀態,做很多持久化的事情,妥善管理生命週期以及一些跳轉邏輯。
  2. BroadCast Receiver:接受一種或者多種Intent作觸發事件,接受相關訊息,做一些簡單處理,轉換成一條Notification,統一了Android的事件廣播模型。
  3. Content Provider:是Android提供的第三方應用資料的訪問方案,可以派生Content Provider類,對外提供資料,可以像資料庫一樣進行選擇排序,遮蔽內部資料的儲存細節,向外提供統一的介面模型,大大簡化上層應用,對資料的整合提 供了更方便的途徑。
  4. service:後臺服務於Activity,封裝有一個完整的功能邏輯實現,接受上層指令,完成相關的事務,定義好需要接受的Intent提供同步和非同步的介面。

7.Android中常用佈局

常用的佈局:

FrameLayout(幀佈局):所有東西依次都放在左上角,會重疊
LinearLayout(線性佈局):按照水平和垂直進行資料展示
RelativeLayout(相對佈局):以某一個元素為參照物,來定位的佈局方式

不常用的佈局:

TableLayout(表格佈局): 每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素(Android TV上使用)
AbsoluteLayout(絕對佈局):用X,Y座標來指定元素的位置,元素多就不適用。(機頂盒上使用)

新增佈局:

PercentRelativeLayout(百分比相對佈局)可以通過百分比控制控制元件的大小。
PercentFrameLayout(百分比幀佈局)可以通過百分比控制控制元件的大小。

8.訊息推送的方式

  • 方案1、使用極光和友盟推送。
  • 方案2、使用XMPP協議(Openfire + Spark + Smack)

    • 簡介:基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標準化組織完成了標準化工作。
    • 優點:協議成熟、強大、可擴充套件性強、目前主要應用於許多聊天系統中,且已有開源的Java版的開發例項androidpn。 
      缺點:協議較複雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。
  • 方案3、使用MQTT協議(更多資訊見:http://mqtt.org/

    • 簡介:輕量級的、基於代理的“釋出/訂閱”模式的訊息傳輸協議。
    • 優點:協議簡潔、小巧、可擴充套件性強、省流量、省電,目前已經應用到企業領域(參考:http://mqtt.org/software),且已有C++版的服務端元件rsmb。
    • 缺點:不夠成熟、實現較複雜、服務端元件rsmb不開源,部署硬體成本較高。
  • 方案4、使用HTTP輪循方式 
    • 簡介:定時向HTTP服務端介面(Web Service API)獲取最新訊息。
    • 優點:實現簡單、可控性強,部署硬體成本低。
    • 缺點:實時性差。

9.android的資料儲存

  1. 使用SharedPreferences儲存資料;它是Android提供的用來儲存一些簡單配置資訊的一種機制,採用了XML格式將資料儲存到裝置中。只能在同一個包內使用,不能在不同的包之間使用。
  2. 檔案儲存資料;檔案儲存方式是一種較常用的方法,在Android中讀取/寫入檔案的方法,與Java中實現I/O的程式是完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取裝置上的檔案。
  3. SQLite資料庫儲存資料;SQLite是Android所帶的一個標準的資料庫,它支援SQL語句,它是一個輕量級的嵌入式資料庫。
  4. 使用ContentProvider儲存資料;主要用於應用程式之間進行資料交換,從而能夠讓其他的應用儲存或讀取此Content Provider的各種資料型別。
  5. 網路儲存資料;通過網路上提供給我們的儲存空間來上傳(儲存)和下載(獲取)我們儲存在網路空間中的資料資訊。

10.Activity啟動模式

介紹 Android 啟動模式之前,先介紹兩個概念task和taskAffinity

  • task:翻譯過來就是“任務”,是一組相互有關聯的 activity 集合,可以理解為 Activity 是在 task 裡面活動的。 task 存在於一個稱為 back stack 的資料結構中,也就是說, task 是以棧的形式去管理 activity 的,所以也叫可以稱為“任務棧”。
  • taskAffinity:官方文件解釋是:”The task that the activity has an affinity for.”,可以翻譯為 activity 相關或者親和的任務,這個引數標識了一個 Activity 所需要的任務棧的名字。預設情況下,所有Activity所需的任務棧的名字為應用的包名。 taskAffinity 屬性主要和 singleTask 啟動模式或者 allowTaskReparenting 屬性配對使用。

4種啟動模式

  1. standard:標準模式,也是系統預設的啟動模式。假如 activity A 啟動了 activity B , activity B 則會執行在 activity A 所在的任務棧中。而且每次啟動一個 Activity ,都會重新建立新的例項,不管這個例項在任務中是否已經存在。非 Activity 型別的 context (如 ApplicationContext )啟動 standard 模式的 Activity 時會報錯。非 Activity 型別的 context 並沒有所謂的任務棧,由於上面第 1 點的原因所以系統會報錯。此解決辦法就是為待啟動 Activity 指定 FLAG_ACTIVITY_NEW_TASK 標記位,這樣啟動的時候系統就會為它建立一個新的任務棧。這個時候待啟動 Activity 其實是以 singleTask 模式啟動的。
  2. singleTop:棧頂複用模式。假如 activity A 啟動了 activity B ,就會判斷 A 所在的任務棧棧頂是否是 B 的例項。如果是,則不建立新的 activity B 例項而是直接引用這個棧頂例項,同時 onNewIntent 方法會被回撥,通過該方法的引數可以取得當前請求的資訊;如果不是,則建立新的 activity B 例項。
  3. singleTask:棧內複用模式。在第一次啟動這個 Activity 時,系統便會建立一個新的任務,並且初始化 Activity 的例項,放在新任務的底部。不過需要滿足一定條件的。那就是需要設定 taskAffinity 屬性。前面也說過了, taskAffinity 屬性是和 singleTask 模式搭配使用的。

  1. singleInstance:單例項模式。這個是 singleTask 模式的加強版,它除了具有 singleTask 模式的所有特性外,它還有一點獨特的特性,那就是此模式的 Activity 只能單獨地位於一個任務棧,不與其他 Activity 共存於同一個任務棧。

11.廣播註冊

首先寫一個類要繼承BroadCastReceiver

第一種:在清單檔案中宣告,新增

<receive android:name=".BroadCastReceiverDemo">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED">
</intent-filter>
</receiver>

第二種:使用程式碼進行註冊如:

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
BroadCastReceiverDemo receiver = new BroadCastReceiver();
registerReceiver(receiver, filter);

兩種註冊型別的區別是: 
a.第一種是常駐型廣播,也就是說當應用程式關閉後,如果有資訊廣播來,程式也會被系統呼叫自動執行。 
b.第二種不是常駐廣播,也就是說廣播跟隨程式的生命週期。

12.Android中的ANR

ANR的全稱application not responding 應用程式未響應。

在android中Activity的最長執行時間是5秒。
BroadcastReceiver的最長執行時間則是10秒。
Service的最長執行時間則是20秒。

超出執行時間就會產生ANR。注意:ANR是系統丟擲的異常,程式是捕捉不了這個異常的。

解決方法: 
1. 執行在主執行緒裡的任何方法都儘可能少做事情。特別是,Activity應該在它的關鍵生命週期方法 (如onCreate()和onResume())裡儘可能少的去做建立操作。(可以採用重新開啟子執行緒的方式,然後使用Handler+Message 的方式做一些操作,比如更新主執行緒中的ui等) 
2. 應用程式應該避免在BroadcastReceiver裡做耗時的操作或計算。但不再是在子執行緒裡做這些任務(因為 BroadcastReceiver的生命週期短),替代的是,如果響應Intent廣播需要執行一個耗時的動作的話,應用程式應該啟動一個 Service。

13.ListView優化

  1. convertView重用,利用好 convertView 來重用 View,切忌每次 getView() 都新建。ListView 的核心原理就是重用 View,如果重用 view 不改變寬高,重用View可以減少重新分配快取造成的記憶體頻繁分配/回收;
  2. ViewHolder優化,使用ViewHolder的原因是findViewById方法耗時較大,如果控制元件個數過多,會嚴重影響效能,而使用ViewHolder主要是為了可以省去這個時間。通過setTag,getTag直接獲取View。
  3. 減少Item View的佈局層級,這是所有layout都必須遵循的,佈局層級過深會直接導致View的測量與繪製浪費大量的時間。
  4. adapter中的getView方法儘量少使用邏輯
  5. 圖片載入採用三級快取,避免每次都要重新載入。
  6. 嘗試開啟硬體加速來使ListView的滑動更加流暢。
  7. 使用 RecycleView 代替。

14.Android數字簽名

  1. 所有的應用程式都必須有數字證書,Android系統不會安裝一個沒有數字證書的應用程式
  2. Android程式包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證
  3. 如果要正式釋出一個Android ,必須使用一個合適的私鑰生成的數字證書來給程式簽名。
  4. 數字證書都是有有效期的,Android只是在應用程式安裝的時候才會檢查證書的有效期。如果程式已經安裝在系統中,即使證書過期也不會影響程式的正常功能。

15.Android root機制

root指的是你有許可權可以再系統上對所有檔案有 “讀” “寫” “執行”的權力。root機器不是真正能讓你的應用程式具有root許可權。它原理就跟linux下的像sudo這樣的命令。在系統的bin目錄下放個su程式並屬主是root並有suid許可權。則通過su執行的命令都具有Android root許可權。當然使用臨時使用者許可權想把su拷貝的/system/bin目錄並改屬性並不是一件容易的事情。這裡用到2個工具跟2個命令。把busybox拷貝到你有許可權訪問的目錄然後給他賦予4755許可權,你就可以用它做很多事了。

16.View、surfaceView、GLSurfaceView

View

顯示檢視,內建畫布,提供圖形繪製函式、觸屏事件、按鍵事件函式等,必須在UI主執行緒內更新畫面,速度較慢

SurfaceView

基於view檢視進行拓展的檢視類,更適合2D遊戲的開發,是view的子類,類似使用雙緩機制,在新的執行緒中更新畫面所以重新整理介面速度比view快

GLSurfaceView

基於SurfaceView檢視再次進行拓展的檢視類,專用於3D遊戲開發的檢視,是surfaceView的子類,openGL專用

AsyncTask

AsyncTask的三個泛型引數說明

  1. 第一個引數:傳入doInBackground()方法的引數型別
  2. 第二個引數:傳入onProgressUpdate()方法的引數型別
  3. 第三個引數:傳入onPostExecute()方法的引數型別,也是doInBackground()方法返回的型別

執行在主執行緒的方法:

onPostExecute()
onPreExecute()
onProgressUpdate(Progress...)

執行在子執行緒的方法:

doInBackground()

控制AsyncTask停止的方法:

cancel(boolean mayInterruptIfRunning)

AsyncTask的執行分為四個步驟

  1. 繼承AsyncTask。
  2. 實現AsyncTask中定義的下面一個或幾個方法onPreExecute()、doInBackground(Params…)、onProgressUpdate(Progress…)、onPostExecute(Result)。
  3. 呼叫execute方法必須在UI thread中呼叫。
  4. 該task只能被執行一次,否則多次呼叫時將會出現異常,取消任務可呼叫cancel。

17.Android i18n

I18n 叫做國際化。android 對i18n和L10n提供了非常好的支援。軟體在res/vales 以及 其他帶有語言修飾符的資料夾。如: values-zh 這些資料夾中 提供語言,樣式,尺寸 xml 資源。

18.NDK

  1. NDK是一系列工具集合,NDK提供了一系列的工具,幫助開發者迅速的開發C/C++的動態庫,並能自動將so和Java應用打成apk包。
  2. NDK集成了交叉編譯器,並提供了相應的mk檔案和隔離cpu、平臺等的差異,開發人員只需要簡單的修改mk檔案就可以創建出so檔案。

19.啟動一個程式,可以主介面點選圖示進入,也可以從一個程式中跳轉過去,二者有什麼區別?

通過主介面進入,就是設定預設啟動的activity。在manifest.xml檔案的activity標籤中,寫以下程式碼

<intent- filter>
<intent android:name=“android.intent.action.MAIN”>
<intent android:name=”android:intent.category.LAUNCHER”>
</intent-filter>

從另一個元件跳轉到目標activity,需要通過intent進行跳轉。具體

Intent intent=new Intent(this,activity.class),startActivity(intent)

20.記憶體溢位和記憶體洩漏有什麼區別?何時會產生記憶體洩漏?

記憶體溢位:當程式執行時所需的記憶體大於程式允許的最高記憶體,這時會出現記憶體溢位;

記憶體洩漏:在一些比較消耗資源的操作中,如果操作中記憶體一直未被釋放,就會出現記憶體洩漏。比如未關閉io,cursor。

21.sim卡的EF 檔案有何作用

sim卡就是電話卡,sim卡內有自己的作業系統,用來與手機通訊的。Ef檔案用來儲存資料的。

22.Activity的狀態有幾種?

執行
暫停
停止

23.讓Activity變成一個視窗

設定activity的style屬性=”@android:style/Theme.Dialog”

24.android:gravity與android:layout_gravity的區別

gravity:表示元件內元素的對齊方式 
layout_gravity:相對於父類容器,該檢視元件的對齊方式

25.如何退出Activity

結束當前activity

Finish()
killProgress()
System.exit(0)

關閉應用程式時,結束所有的activity

可以建立一個List集合,每新建立一個activity,將該activity的例項放進list中,程式結束時,從集合中取出迴圈取出activity例項,呼叫finish()方法結束

26.如果後臺的Activity由於某原因被系統回收了,如何在被系統回收之前儲存當前狀態?

在onPuase方法中呼叫onSavedInstanceState()

27.Android中的長度單位詳解

Px:畫素
Sp與dp也是長度單位,但是與螢幕的單位密度無關。

28.activity,service,intent之間的關係

這三個都是android應用頻率非常的元件。Activity與service是四大核心元件。Activity用來載入佈局,顯示視窗介面,service執行後臺,沒有介面顯示,intent是activity與service的通訊使者。

29.activity之間傳遞引數,除了intent,廣播接收器,contentProvider之外,還有那些方法?

Fie:檔案儲存,推薦使用sharedPreferecnces
靜態變數。

30.Adapter是什麼?你所接觸過的adapter有那些?

是介面卡,用來為列表提供資料適配的。經常使用的adapter有baseadapter,arrayAdapter,SimpleAdapter,cursorAdapter,SpinnerAdapter等

31.Fragment與activity如何傳值和互動?

Fragment物件有一個getActivity的方法,通過該方法與activity互動
使用framentmentManager.findFragmentByXX可以獲取fragment物件,在activity中直接操作fragment物件

32.如果Listview中的資料來源發生改變,如何更新listview中的資料

使用adapter的notifyDataSetChanged方法

33.廣播接受者的生命週期?

廣播接收者的生命週期非常短。當執行onRecieve方法之後,廣播就會銷燬
在廣播接受者不能進行耗時較長的操作
在廣播接收者不要建立子執行緒。廣播接收者完成操作後,所在程序會變成空程序,很容易被系統回收

34.ContentProvider與sqlite有什麼不一樣的?

ContentProvider會對外隱藏內部實現,只需要關注訪問contentProvider的uri即可,contentProvider應用在應用間共享。
Sqlite操作本應用程式的資料庫。
ContentProiver可以對本地檔案進行增刪改查操作

35.如何儲存activity的狀態?

預設情況下activity的狀態系統會自動儲存,有些時候需要我們手動呼叫儲存。

當activity處於onPause,onStop之後,activity處於未活動狀態,但是activity物件卻仍然存在。當記憶體不足,onPause,onStop之後的activity可能會被系統摧毀。

當通過返回退出activity時,activity狀態並不會儲存。

儲存activity狀態需要重寫onSavedInstanceState()方法,在執行onPause,onStop之前呼叫onSavedInstanceState方法,onSavedInstanceState需要一個Bundle型別的引數,我們可以將資料儲存到bundle中,通過實參傳遞給onSavedInstanceState方法。

Activity被銷燬後,重新啟動時,在onCreate方法中,接受儲存的bundle引數,並將之前的資料取出。

36.Android中activity,context,application有什麼不同。

Content與application都繼承與contextWrapper,contextWrapper繼承於Context類。

Context:表示當前上下文物件,儲存的是上下文中的引數和變數,它可以讓更加方便訪問到一些資源。

Context通常與activity的生命週期是一樣的,application表示整個應用程式的物件。

對於一些生命週期較長的,不要使用context,可以使用application。

在activity中,儘量使用靜態內部類,不要使用內部類。內部裡作為外部類的成員存在,不是獨立於activity,如果記憶體中還有記憶體繼續引用到context,activity如果被銷燬,context還不會結束。

37.Service 是否在 main thread 中執行, service 裡面是否能執行耗時的操作?

預設情況service在main thread中執行,當service在主執行緒中執行,那在service中不要進行一些比較耗時的操作,比如說網路連線,檔案拷貝等。

38.Service 和 Activity 在同一個執行緒嗎

預設情況下service與activity在同一個執行緒,都在main Thread,或者ui執行緒中。

如果在清單檔案中指定service的process屬性,那麼service就在另一個程序中執行。

相關推薦

100android試題

1.Android系統的架構 Android系統架構之應用程式  Android會同一系列核心應用程式包一起釋出,該應用程式包包括email客戶端,SMS短訊息程式,日曆,地圖,瀏覽器,聯絡人管理程式等。所有的應用程式都是使用JAVA語言編寫的。 Android系統架構之

100Java試題收集整理及參考答案

java面試題不積跬步無以至千裏,這裏會不斷收集和更新Java基礎相關的面試題,目前已收集100題。1.什麽是B/S架構?什麽是C/S架構B/S(Browser/Server),瀏覽器/服務器程序C/S(Client/Server),客戶端/服務端,桌面應用程序2.你所知道網絡協議有那些?HTTP:超文本傳輸

100python試題

    1、一行程式碼實現1--100之和 利用sum()函式求和 2、如何在一個函式內部修改全域性變數 利用global 修改全域性變數

100JAVA試題+JAVA試題參考答案

(一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;java.util;java.io;java.sql;java.awt;java.net;javax.swing 2、JDK中哪些類是不能繼承的?【信雅達面試

金九銀十中,看看這31Android試題

金九銀十中,看看這31道Android面試題 閱讀目錄 1.如何對 Android 應用進行效能分析 2.什麼情況下會導致記憶體洩露 3.如何避免 OOM 異常 4.Android 中如何捕獲未捕獲的異常 5.ANR 是什麼?怎樣避免和解決 A

Android試題71

以下整理內容來自網路 1. 下列哪些語句關於記憶體回收的說明是正確的? (b)        A、 程式設計師必須建立一個執行緒來釋放記憶體   B、 記憶體回收程式負責釋放無用記憶體   C、 記憶體回收程式允許程式設計師直接釋放記憶體   D、 記憶體回收程式可以在指定

Linux下C語言的幾經典試題

ref 使用 linu 學習資源 chan ima 什麽 img c語言 本篇文章整理了幾道Linux下C語言的經典面試題,相信對大家更好的理解Linux下的C語言會有很大的幫助,歡迎大家探討指正。 1、如果在Linux下使用GCC編譯器執行下列程序,輸出結果是什麽? 答

Android試題3之描寫敘述下Android的系統架構

都是 csdn 進行 功能 驅動程序 libraries sso 封裝 rar 描寫敘述下Android的系統架構: Android系統從下往上分為Linux內核層(linux kerner),執行庫(runtime library),應用程序框架層,

100+經典Java試題及答案解析

是什麽 自定義 我們 計數 接口類 同步方法 main err ans 面向對象編程(OOP) Java是一個支持並發、基於類和面向對象的計算機編程語言。下面列出了面向對象軟件開發的優點: 代碼開發模塊化,更易維護和修改。 代碼復用。 增強代碼的可靠性和靈活

javascript 試題 你必須會

fun prot 試題 concat 作用 val function 運算 return 實現一個函數,運算結果可以滿足如下預期結果: add(1)(2) // 3 add(1, 2, 3)(10) // 16 add(1)(2)(3)(4)(5) // 15 話不多說

2017年8php試題(真題+答案)

php 高級php1、<?php echo count(strlen(“http://php.net”)); ?>的執行結果是? 答案:1 講解:count(var)是用來統計數組或對象的元素個數的。當var是null或者空數組時,結果為0。如果var是普通變量,則返回1。正常情況下返回var中的

2017年最全的30個Android試題,你將如何回答?

fab reat 屬於 微信公眾號 ber 什麽是 進入 細節 註意 百度首頁 登錄 2017年最全的30個Android面試題,你將如何回答? 機翼技術 百家號 03-10 02:32 “三金四銀”又是一年一度的跳槽季,相信有不少An

Android試題

頁面 nts 可見 集成 培訓課程 繼續 ide imp 進入 前幾天整理了Java面試題集合,今天再來整理下Android相關的面試題集合.假設你希望能得到最新的消

Linux大牛分享的7經典試題和秒收 offer 的技巧

開發技能 多個 ins 主從架構 統計 mongo 交換 到你 移動客戶端 筆者其實沒有想到去面試,只是在智聯上更新了一下簡歷,就陸陸續續接到很多獵頭的郵件和電話,閑話少說,下面就分享給大家Linuxer的面試經歷: 首先,獵頭或者公司人資會把公司的介紹及崗位要求發到你郵箱

Android 試題 Java 基礎

blog false post 地址 內存地址 strong abc 區別 andro 1. equals與==的區別  1.1 對於基本數據類型,==比較的是值是否相等  1.2 對於引用數據類型,== 比較的是對象內存地址是否一致,equal是Object類中的一個方法

2018年Android試題含答案(上)

密碼學 進程的地址空間 變量 細節 一段時間 設備驅動 橋梁 異常 graph 這些面試題是我在今年年初換工作的時候整理,沒有重點。包括java基礎,數據結構,網絡,Android相關等等。適合中高級工程師。由於內容過多,將會分為上下兩部分。希望能夠幫到一些朋友,如果幫助到

2018年Android試題含答案--適合中高級(下)

所在 sync gpo 成了 廠商 end 解釋 同步 變換 1、Activity生命周期? onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy(

69Spring試題和答案

clas 完成 上傳 stp 集合 xml配置 很好 單元測試 簡潔 Spring 概述 1. 什麽是spring? Spring 是個Java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架

Android 試題總結

src 根據 四大組件 使用 順序 onf 結構 每次 面試 1.Android四大組件以及作用??? Activity:Activity是Android程序與用戶實現交互的窗口,是Android中最重要的一中,它需要保存各界面的狀態,做很多持久化的

史上最全 69 Spring 試題和答案

str 路徑 輕量 情況下 list 開發 erp throw 解決方案 史上最全 69 道 Spring 面試題和答案 目錄Spring 概述依賴註入Spring beansSpring註解Spring數據訪問Spring面向切面編程(AOP)Spring MVC S