1. 程式人生 > >Android面試題記錄

Android面試題記錄

JAva面試題

  1. String ,StringBuffer,StringBuilder的區別?

    (1) String字串常量,StringBuffer 字串變數(執行緒安全)StringBuilder 字串變數(非執行緒安全)
    (2) String型別和StringBuffer型別的主要效能區別就是String是不可改變的物件,在每次對String
    型別進行改變的時候其實都等同於生成一個新的String物件,然後將指標指向新的String物件,會對系統性能產生影響,當記憶體中無引用物件多了以後,JVM的GC就會開始工作,速度會相當慢; 使用StringBuffer類,每次結果都會對StringBuffer物件本身進行操作,而不是重新生成物件,再改變物件引用。
    StringBuffer是可變的,在緩衝區中追加字串或者插入指定位置字串,而且執行緒安全,比String大多數情況要快,而StringBuilder就是StringBuffer的一個替身而已,就是快,而且執行緒不安全。

    1. 抽象類與介面在語法和使用上有哪些區別?

    (1) 抽象類(abstract class);定義:如果一個類沒有包含足夠多的資訊來描述一個具體的物件,這樣的類就叫作抽象類。
    抽象方法:只宣告,不實現。具體的實現需要繼承它的子類來實現,抽象類是為了繼承而存在的,抽象類不能用來建立物件。也就是說被 abstract修飾的方法 一般抽象方法為public 或者protected 例 如: public acstract String A();
    (2) 介面 (interface) 定義: 介面抽象方法的集合,通過繼承介面的方式來繼承介面中的抽象方法例如:interface A(){} ; 介面只能用public static final 修飾;介面中沒有構造方式(介面不是類);介面中的方法必須是抽象的;介面支援多繼承(例如:class A implements B,C,…)
    (3抽象類和介面的區別)
    1.抽象類可以提供成員方法的實現,而介面只能存在public abstract方法
    2.抽象類中的成員變數可以是各種型別,介面中的成員變數只能是public static final類
    3.抽象類可以有靜態程式碼塊和靜態方法,介面中不能含有靜態程式碼塊以及靜態方法
    4.一個類只能整合一個抽象類,而一個類可以實現多個介面

    1. java中 == 和equals和hashCode的區別?

    “==”用來比較兩個變數(基本型別和物件型別)的值是否相等,如果是基本型別的比較直接比較值;如果是物件型別比較那麼它比較的是兩個物件在棧中的引用(地址)
    “equals” 通過判斷兩個物件的地址是否相等
    “hashCode”它的作用是獲取雜湊碼,這個雜湊碼的作用是確定該物件在雜湊表中索引位置;是返回物件在類存中地址轉換成的一個int值,如果沒有重寫hashCode方法,任何物件的hashCode都不相等

    4.ArrayMap,HashMap,ArrayList,LinkedList的資料結構是什麼樣的?

    1. ArrayMap是通過Key– value 對映資料結構的,ArrayMap保持它的對映到一個數組結構,一個Integer陣列來儲存每一個item的雜湊碼,一個物件陣列來儲存鍵值對,這樣避免了為每一個條目都建立一個額外物件,更有效的控制了陣列大小,因為它通過二分查詢的方式,所以比hashMap慢。
    2. HashMAp 的底層是基於陣列和連結串列來實現的,查詢速度快是因為通過計算雜湊碼來決定儲存位置,HashMap主要通過key的HashCode來計算hash值的;HashMap底層通過連結串列來解決hash衝突。
    3. ArrayList 陣列集合;ArrayList允許為空;允許重複資料;有序;非執行緒安全
    4. LinkedList 基於雙向迴圈連結串列實現,隨機增刪較快,存取時需要遍歷查詢;非執行緒安全,適合在單執行緒下使用;LinkedList實現了Serializable介面,支援序列化。
      ArrayMap 替換 HashMap
      ArraySet 替換 HashSet
      SparseArray 替換 HashMap
      SparseBooleanArray 替換 HashMap
      SparseIntArray 替換 HashMap
      SparseLongArray 替換 HashMap
      LongSparseArray 替換 HashMap

4.wait() 和 sleep() 的區別?

wait()用於執行緒間的通訊,wait()只能在同步(synchronize)環境中被呼叫;進入wait狀態的執行緒能被notify和notifyAll執行緒喚醒;wait通過有條件的執行,執行緒會一直處於wait狀態;進入wait狀態時會釋放物件的鎖。
sleep()用於短時間暫停當前執行緒;sleep讓執行緒進入休眠狀態;進入sleeping狀態的執行緒不能被notify喚醒;

Android

1.Activity生命週期?

a. 啟動Activity: onCreate() -> onStart() -> onResume()
b. Activity退居後臺: 當前Activity跳轉到新的Activity介面或者按Home鍵返回主屏:
onPause() -> onStop()
c. Activity返回前臺: onRestart() -> onStart() -> onResume()
d. 鎖屏: onPause() -> onStop()
e. 解鎖: onStart() -> onResume()
Activity退居後臺,且記憶體不足,系統會殺死這個後臺狀態的Activity(此時這個activity還在任務棧中,只是引用的物件已經為null),若再次回到這個Activity時會從新走一次啟動Activity的生命週期
2.Fragment生命週期?

3.Activity啟動模式介紹?

Activity的啟動模式有四種: standard,singleTop,singleTask,singleInstance
AndroidManifest.xml清單檔案 android:launchMode屬性來指定啟動模式

4.service的啟動方式以及區別?怎麼停止一個service?

a.在Context中通過 public boolen bindService(Intent service,ServiceConnection conn,int flags)方法進行Service與Context關聯並啟動;Service的生命週期依附於Context
b.通過public ComponentName startService(Intent service)方法啟動一個Service,此時Service生命週期與Context無關。
需要注意的是都需要在清單檔案 xml中註冊Service例如

相關推薦

Android試題記錄

JAva面試題 String ,StringBuffer,StringBuilder的區別? (1) String字串常量,StringBuffer 字串變數(執行緒安全)StringBuilder 字串變數(非執行緒安全) (2) String

web前端試題記錄

tor 便是 自動填充 事件監聽 數據 函數 請求 原型模式 coo 記錄了2017年5月下旬剛畢業時面試的經典面試題 布局方面 1. 響應式布局,左側欄目固定,右側內容隨著屏幕寬度變化而變化(高頻) flex布局 position布局 css3計算寬度 float布局

c#試題記錄

pri man public ide lose close -s where 增長 SQL SERVER 題 某商品價格表如下,ID是自增長列 表名是JGTable,上面是表的結構 題目是:請查出當前時間800001商品的價格,設當前時間是curdate=2017-01-

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

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

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

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

Android試題

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

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(

C/C++ 試題記錄

其它 del void 才會 win32 obj pan 靈活 作用範圍 1、new 、 delete 、 malloc 、 free 的區別與關系?   new / delete 是C++的運算符,malloc / free 是C的標準庫函數。   new會調用對象的構造

Android 試題總結

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

android 試題(一)

程序 一個 如果 intent傳值 存儲 新的 有一個 數據類型 andro 1、Android中真實寬高,getWidth和getMeasuredWidth的區別:哪個計算的是真實的寬? getWidth():得到的是View在父Layout中布局好後的寬度值,如果沒有父

一年內經驗前端試題記錄

state lex mob 綁定 for rtu 哪些 其他 ava JavaScript JavaScript文件在什麽情況下會放在html哪個位置 map,forEach,reduce區別 cookie,session,localStroage區別 call,ap

牛客試題記錄JAVA

有一個原始碼,只包含import java.util.* ; 這一個import語句,下面敘述正確的是?   ( ) 能訪問java/util目錄下的所有類,不能訪問java/util子目錄下的所有類 解析:匯入java.util.*不

android試題之資料結構篇

1.常見的資料結構介紹   https://www.jianshu.com/p/230e6fde9c75(轉) 2.常見的5種併發集合 1、常用的五種併發包 ConcurrentHashMap CopyOnWriteArrayList CopyOnWr

京東android試題(2018 頂級網際網路公司試題系列)

以下來自於北京的一個兄弟的面試題 1.靜態內部類和非靜態內部類有什麼區別   2.談談你對java多型的理解   3.如何開啟執行緒,run和runnable有什麼區別   4.執行緒池的好處   5.說一下你知道的設計模式有哪些,介紹下介面卡模式 &n

Android試題5

81.雙快取怎麼實現的? 答:1、在記憶體中建立一塊“虛擬畫布”: Bitmap bmp = new Bitmap(600, 600); 2、獲取這塊記憶體畫布的Graphics引用: Graphics g = 

Android試題4

61.JNI怎樣用 JNI是JAVA標準平臺中的一個重要功能,它彌補了JAVA的與平臺無關這一重大優點的不足,在JAVA實現跨平臺的同時,也能與其它語言(如C、C++)的動態庫進行互動,給其它語言發揮優勢的機會。 Java Native Interface (JNI)標準是Java平臺的

Android試題3

41.MVC作用? 答: Android中介面部分也採用了當前比較流行的MVC框架。 在Android中: 1) 檢視層(View):一般採用XML檔案進行介面的描述,使用的時候可以非常方 便的引入。也可以使用JavaScript+HTML等的方式作為View層,通過WebVie

Android試題2

20.圖片的非同步載入的方法? 1.利用軟引用來快取圖片Bitmap,用圖片的URL作為快取查詢的Key; 2.設兩級快取,一級是SoftReference,二級是本地SD卡; 3.如果兩級快取都沒取到圖片,則從伺服器獲取,並加入快取; 4.載入完後通過回撥介面