日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

离开小厂进大厂的第一周,BTAJ大厂最新面试题汇集,面试总结

發(fā)布時間:2023/11/30 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 离开小厂进大厂的第一周,BTAJ大厂最新面试题汇集,面试总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大佬帶你走進Android開發(fā)的世界,掌握了這些知識點,學(xué)習(xí)Android也可以很輕松。

核心分析內(nèi)容

對于怎么學(xué)習(xí)Android,主要解決的是3個問題:學(xué)什么、怎么學(xué) & 怎么用。
具體如下:

下面,我將帶著上述幾個問題,**詳細講解自身學(xué)習(xí)Android的方法和Android學(xué)習(xí)路徑;**最后,還會結(jié)合前面內(nèi)容,給出綜合的具體執(zhí)行學(xué)習(xí)Android的建議。

Android面試中有哪些常見問題匯總&答題思路

目錄:

1.網(wǎng)絡(luò)
2.Java 基礎(chǔ)&容器&同步&設(shè)計模式
3.Java 虛擬機&內(nèi)存結(jié)構(gòu)&GC&類加載&四種引用&動態(tài)代理
4.Android 基礎(chǔ)&性能優(yōu)化&Framwork
5.Android 模塊化&熱修復(fù)&熱更新&打包&混淆&壓縮
6.音視頻&FFmpeg&播放器

1、網(wǎng)絡(luò)

網(wǎng)絡(luò)協(xié)議模型

應(yīng)用層:負責(zé)處理特定的應(yīng)用程序細節(jié)
HTTP、FTP、DNS

傳輸層:為兩臺主機提供端到端的基礎(chǔ)通信
TCP、UDP

網(wǎng)絡(luò)層:控制分組傳輸、路由選擇等
IP

鏈路層:操作系統(tǒng)設(shè)備驅(qū)動程序、網(wǎng)卡相關(guān)接口

TCP 和 UDP 區(qū)別

TCP 連接;可靠;有序;面向字節(jié)流;速度慢;較重量;全雙工;適用于文件傳輸、瀏覽器等

  • 全雙工:A 給 B 發(fā)消息的同時,B 也能給 A 發(fā)
  • 半雙工:A 給 B 發(fā)消息的同時,B 不能給 A 發(fā)

UDP 無連接;不可靠;無序;面向報文;速度快;輕量;適用于即時通訊、視頻通話等

TCP 三次握手

A:你能聽到嗎?
B:我能聽到,你能聽到嗎?
A:我能聽到,開始吧

A 和 B 兩方都要能確保:我說的話,你能聽到;你說的話,我能聽到。所以需要三次握手

TCP 四次揮手

A:我說完了
B:我知道了,等一下,我可能還沒說完
B:我也說完了
A:我知道了,結(jié)束吧

B 收到 A 結(jié)束的消息后 B 可能還沒說完,沒法立即回復(fù)結(jié)束標(biāo)示,只能等說完后再告訴 A :我說完了。

POST 和 GET 區(qū)別

Get 參數(shù)放在 url 中;Post 參數(shù)放在 request Body 中
Get 可能不安全,因為參數(shù)放在 url 中

HTTPS

HTTP 是超文本傳輸協(xié)議,明文傳輸;HTTPS 使用 SSL 協(xié)議對 HTTP 傳輸數(shù)據(jù)進行了加密

HTTP 默認 80 端口;HTTPS 默認 443 端口

優(yōu)點:安全
缺點:費時、SSL 證書收費,加密能力還是有限的,但是比 HTTP 強多了

2、Java 基礎(chǔ)&容器&同步&設(shè)計模式

StringBuilder、StringBuffer、+、String.concat 鏈接字符串:

  • StringBuffer 線程安全,StringBuilder 線程不安全
  • +實際上是用 StringBuilder 來實現(xiàn)的,所以非循環(huán)體可以直接用 +,循環(huán)體不行,因為會頻繁創(chuàng)建 StringBuilder
  • String.concat 實質(zhì)是 new String ,效率也低,耗時排序:StringBuilder < StringBuffer < concat < +

Java 泛型擦除

  • 修飾成員變量等類結(jié)構(gòu)相關(guān)的泛型不會被擦除
  • 容器類泛型會被擦除

ArrayList、LinkedList

ArrayList

基于數(shù)組實現(xiàn),查找快:o(1),增刪慢:o(n)
初始容量為10,擴容通過 System.arrayCopy 方法

LinkedList

基于雙向鏈表實現(xiàn),查找慢:o(n),增刪快:o(1)
封裝了隊列和棧的調(diào)用

HashMap 、HashTable

HashMap

  • 基于數(shù)組和鏈表實現(xiàn),數(shù)組是 HashMap 的主體;鏈表是為解決哈希沖突而存在的
  • 當(dāng)發(fā)生哈希沖突且鏈表 size 大于閾值時會擴容,JAVA 8 會將鏈表轉(zhuǎn)為紅黑樹提高性能
    允許 key/value 為 null

HashTable

  • 數(shù)據(jù)結(jié)構(gòu)和 HashMap 一樣
  • 不允許 value 為 null
  • 線程安全

ArrayMap、SparseArray

ArrayMap

1.基于兩個數(shù)組實現(xiàn),一個存放 hash;一個存放鍵值對。擴容的時候只需要數(shù)組拷貝,不需要重建哈希表
2.內(nèi)存利用率高
3.不適合存大量數(shù)據(jù),因為會對 key 進行二分法查找(1000以下)

SparseArray

1.基于兩個數(shù)組實現(xiàn),int 做 key
2.內(nèi)存利用率高
3.不適合存大量數(shù)據(jù),因為會對 key 進行二分法查找(1000以下)

volatile 關(guān)鍵字

  • 只能用來修飾變量,適用修飾可能被多線程同時訪問的變量
  • 相當(dāng)于輕量級的 synchronized,volatitle 能保證有序性(禁用指令重排序)、可見性;后者還能保證原子性
  • 變量位于主內(nèi)存中,每個線程還有自己的工作內(nèi)存,變量在自己線程的工作內(nèi)存中有份拷貝,線程直接操作的是這個拷貝
  • 被 volatile 修飾的變量改變后會立即同步到主內(nèi)存,保持變量的可見性。

雙重檢查單例,為什么要加 volatile?

1.volatile想要解決的問題是,在另一個線程中想要使用instance,發(fā)現(xiàn)instance!=null,但是實際上instance還未初始化完畢這個問題

2.將instance =newInstance();拆分為3句話是。1.分配內(nèi)存2.初始化3.將instance指向分配的內(nèi)存空

3.volatile可以禁止指令重排序,確保先執(zhí)行2,后執(zhí)行3

wait 和 sleep

  • sleep 是 Thread 的靜態(tài)方法,可以在任何地方調(diào)用
  • wait 是 Object 的成員方法,只能在 synchronized 代碼塊中調(diào)用,否則會報 IllegalMonitorStateException 非法監(jiān)控狀態(tài)異常
  • sleep 不會釋放共享資源鎖,wait 會釋放共享資源鎖

lock 和 synchronized

  • synchronized 是 Java 關(guān)鍵字,內(nèi)置特性;Lock 是一個接口
  • synchronized 會自動釋放鎖;lock 需要手動釋放,所以需要寫到 try catch 塊中并在 finally 中釋放鎖
  • synchronized 無法中斷等待鎖;lock 可以中斷
  • Lock 可以提高多個線程進行讀/寫操作的效率
  • 競爭資源激烈時,lock 的性能會明顯的優(yōu)于 synchronized

可重入鎖

  • 定義:已經(jīng)獲取到鎖后,再次調(diào)用同步代碼塊/嘗試獲取鎖時不必重新去申請鎖,可以直接執(zhí)行相關(guān)代碼
  • ReentrantLock 和 synchronized 都是可重入鎖

公平鎖

  • 定義:等待時間最久的線程會優(yōu)先獲得鎖
  • 非公平鎖無法保證哪個線程獲取到鎖,synchronized 就是非公平鎖
  • ReentrantLock 默認時非公平鎖,可以設(shè)置為公平鎖

樂觀鎖和悲觀鎖

  • 悲觀鎖:線程一旦得到鎖,其他線程就掛起等待,適用于寫入操作頻繁的場景;synchronized 就是悲觀鎖
  • 樂觀鎖:假設(shè)沒有沖突,不加鎖,更新數(shù)據(jù)時判斷該數(shù)據(jù)是否過期,過期的話則不進行數(shù)據(jù)更新,適用于讀取操作頻繁的場景
  • 樂觀鎖 CAS:Compare And Swap,更新數(shù)據(jù)時先比較原值是否相等,不相等則表示數(shù)據(jù)過去,不進行數(shù)據(jù)更新
  • 樂觀鎖實現(xiàn):AtomicInteger、AtomicLong、AtomicBoolean

死鎖 4 個必要條件

  • 互斥
  • 占有且等待
  • 不可搶占
  • 循環(huán)等待

synchronized 原理

  • 每個對象都有一個監(jiān)視器鎖:monitor,同步代碼塊會執(zhí)行 monitorenter 開始,motnitorexit 結(jié)束
  • wait/notify 就依賴 monitor 監(jiān)視器,所以在非同步代碼塊中執(zhí)行會報 IllegalMonitorStateException 異常

3、Java 虛擬機&內(nèi)存結(jié)構(gòu)&GC&類加載&四種引用&動態(tài)代理

JVM

  • 定義:可以理解成一個虛構(gòu)的計算機,解釋自己的字節(jié)碼指令集映射到本地 CPU 或 OS 的指令集,上層只需關(guān)注 Class 文件,與操作系統(tǒng)無關(guān),實現(xiàn)跨平臺
  • Kotlin 就是能解釋成 Class 文件,所以可以跑在 JVM 上

JVM 內(nèi)存模型

  • Java 多線程之間是通過共享內(nèi)存來通信的,每個線程都有自己的本地內(nèi)存
  • 共享變量存放于主內(nèi)存中,線程會拷貝一份共享變量到本地內(nèi)存
  • volatile 關(guān)鍵字就是給內(nèi)存模型服務(wù)的,用來保證內(nèi)存可見性和順序性

JVM 內(nèi)存結(jié)構(gòu)

線程私有

1.程序計數(shù)器:記錄正在執(zhí)行的字節(jié)碼指令地址,若正在執(zhí)行 Native 方法則為空
2.虛擬機棧:執(zhí)行方法時把方法所需數(shù)據(jù)存為一個棧幀入棧,執(zhí)行完后出棧
3.本地方法棧:同虛擬機棧,但是針對的是 Native 方法

線程共享

1.堆:存儲 Java 實例,GC 主要區(qū)域,分代收集 GC 方法會吧堆劃分為新生代、老年代
2.方法區(qū):存儲類信息,常量池,靜態(tài)變量等數(shù)據(jù)

GC

回收區(qū)域:只針對堆、方法區(qū);線程私有區(qū)域數(shù)據(jù)會隨線程結(jié)束銷毀,不用回收

回收類型:

1.堆中的對象

  • 分代收集 GC 方法會吧堆劃分為新生代、老年代
  • 新生代:新建小對象會進入新生代;通過復(fù)制算法回收對象
  • 老年代:新建大對象及老對象會進入老年代;通過標(biāo)記-清除算法回收對象

2.方法區(qū)中的類信息、常量池

判斷一個對象是否可被回收:

1.引用計數(shù)法
缺點:循環(huán)引用

2.可達性分析法
定義:從 GC ROOT 開始搜索,不可達的對象都是可以被回收的

GC ROOT

1.虛擬機棧/本地方法棧中引用的對象
2.方法區(qū)中常量/靜態(tài)變量引用的對象

四種引用

  • 強引用:不會被回收
  • 軟引用:內(nèi)存不足時會被回收
  • 弱引用:gc 時會被回收
  • 虛引用:無法通過虛引用得到對象,可以監(jiān)聽對象的回收

ClassLoader

類的生命周期:

1.加載;2.驗證;3.準(zhǔn)備;4.解析;5.初始化;6.使用;7.卸載

類加載過程:

1.加載:獲取類的二進制字節(jié)流;生成方法區(qū)的運行時存儲結(jié)構(gòu);在內(nèi)存中生成 Class 對象
2.驗證:確保該 Class 字節(jié)流符合虛擬機要求
3.準(zhǔn)備:初始化靜態(tài)變量
4.解析:將常量池的符號引用替換為直接引用
5.初始化:執(zhí)行靜態(tài)塊代碼、類變量賦值

類加載時機

1.實例化對象
2.調(diào)用類的靜態(tài)方法
3.調(diào)用類的靜態(tài)變量(放入常量池的常量除外)

類加載器:負責(zé)加載 class 文件

分類:

1.引導(dǎo)類加載器 - 沒有父類加載器
2.拓展類加載器 - 繼承自引導(dǎo)類加載器
3.系統(tǒng)類加載器 - 繼承自拓展類加載器

雙親委托模型:

當(dāng)要加載一個 class 時,會先逐層向上讓父加載器先加載,加載失敗才會自己加載

為什么叫雙親?不考慮自定義加載器,系統(tǒng)類加載器需要網(wǎng)上詢問兩層,所以叫雙親

判斷是否是同一個類時,除了類信息,還必須時同一個類加載器

優(yōu)點:

  • 防止重復(fù)加載,父加載器加載過了就沒必要加載了
  • 安全,防止篡改核心庫類

動態(tài)代理原理及實現(xiàn)

  • InvocationHandler 接口,動態(tài)代理類需要實現(xiàn)這個接口
  • Proxy.newProxyInstance,用于動態(tài)創(chuàng)建代理對象
  • Retrofit 應(yīng)用: Retrofit 通過動態(tài)代理,為我們定義的請求接口都生成一個動態(tài)代理對象,實現(xiàn)請求

4、Android 基礎(chǔ)&性能優(yōu)化&Framwork

Activity 啟動模式

  • standard 標(biāo)準(zhǔn)模式
  • singleTop 棧頂復(fù)用模式,
    • 推送點擊消息界面
  • singleTask 棧內(nèi)復(fù)用模式,
    • 首頁
  • singleInstance 單例模式,單獨位于一個任務(wù)棧中
    • 撥打電話界面
      細節(jié):
    • taskAffinity:任務(wù)相關(guān)性,用于指定任務(wù)棧名稱,默認為應(yīng)用包名
    • allowTaskReparenting:允許轉(zhuǎn)移任務(wù)棧

View 工作原理

  • DecorView (FrameLayout)
    • LinearLayout
      • titlebar
      • Content
      • 調(diào)用 setContentView 設(shè)置的 View

ViewRoot 的 performTraversals 方法調(diào)用觸發(fā)開始 View 的繪制,然后會依次調(diào)用:

  • performMeasure:遍歷 View 的 measure 測量尺寸
  • performLayout:遍歷 View 的 layout 確定位置
  • performDraw:遍歷 View 的 draw 繪制

事件分發(fā)機制

  • 一個 MotionEvent 產(chǎn)生后,按 Activity -> Window -> decorView -> View 順序傳遞,View 傳遞過程就是事件分發(fā),主要依賴三個方法:
  • dispatchTouchEvent:用于分發(fā)事件,只要接受到點擊事件就會被調(diào)用,返回結(jié)果表示是否消耗了當(dāng)前事件
  • onInterceptTouchEvent:用于判斷是否攔截事件,當(dāng) ViewGroup 確定要攔截事件后,該事件序列都不會再觸發(fā)調(diào)用此 ViewGroup 的 onIntercept
  • onTouchEvent:用于處理事件,返回結(jié)果表示是否處理了當(dāng)前事件,未處理則傳遞給父容器處理
  • 細節(jié):
    • 一個事件序列只能被一個 View 攔截且消耗
    • View 沒有 onIntercept 方法,直接調(diào)用 onTouchEvent 處理
    • OnTouchListener 優(yōu)先級比 OnTouchEvent 高,onClickListener 優(yōu)先級最低
    • requestDisallowInterceptTouchEvent 可以屏蔽父容器 onIntercet 方法的調(diào)用

Window 、 WindowManager、WMS、SurfaceFlinger

  • Window:抽象概念不是實際存在的,而是以 View 的形式存在,通過 PhoneWindow 實現(xiàn)
  • WindowManager:外界訪問 Window 的入口,內(nèi)部與 WMS 交互是個 IPC 過程
  • WMS:管理窗口 Surface 的布局和次序,作為系統(tǒng)級服務(wù)單獨運行在一個進程
  • SurfaceFlinger:將 WMS 維護的窗口按一定次序混合后顯示到屏幕上

View 動畫、幀動畫及屬性動畫

View 動畫:

  • 作用對象是 View,可用 xml 定義,建議 xml 實現(xiàn)比較易讀
  • 支持四種效果:平移、縮放、旋轉(zhuǎn)、透明度

幀動畫:

  • 通過 AnimationDrawable 實現(xiàn),容易 OOM

屬性動畫:

  • 可作用于任何對象,可用 xml 定義,Android 3 引入,建議代碼實現(xiàn)比較靈活
  • 包括 ObjectAnimator、ValuetAnimator、AnimatorSet
  • 時間插值器:根據(jù)時間流逝的百分比計算當(dāng)前屬性改變的百分比
  • 系統(tǒng)預(yù)置勻速、加速、減速等插值器
  • 類型估值器:根據(jù)當(dāng)前屬性改變的百分比計算改變后的屬性值
  • 系統(tǒng)預(yù)置整型、浮點、色值等類型估值器
  • 使用注意事項:
  • 避免使用幀動畫,容易OOM
  • 界面銷毀時停止動畫,避免內(nèi)存泄漏
  • 開啟硬件加速,提高動畫流暢性 ,硬件加速:
  • 將 cpu 一部分工作分擔(dān)給 gpu ,使用 gpu 完成繪制工作
  • 從工作分?jǐn)偤屠L制機制兩個方面優(yōu)化了繪制速度

最后

總之啊,家里沒礦的同學(xué)們,如果你們想以后的日子過得好一些,多想想你們的業(yè)余時間怎么安排吧;

技術(shù)方面的提升肯定是重中之重,但是技術(shù)外的一些“軟實力”也不能完全忽視,很多時候升職確實是因為你的技術(shù)足夠強,但也與你的“軟實力”密切相關(guān)

在這我也分享一份大佬自己收錄整理的 Android學(xué)習(xí)PDF+架構(gòu)視頻+面試文檔+源碼筆記 ,還有高級架構(gòu)技術(shù)進階腦圖、Android開發(fā)面試專題資料,高級進階架構(gòu)資料這些都是我閑暇還會反復(fù)翻閱并給下屬員工學(xué)習(xí)的精品資料。在腦圖中,每個知識點專題都配有相對應(yīng)的實戰(zhàn)項目,可以有效的幫助大家掌握知識點。

總之也是在這里幫助大家學(xué)習(xí)提升進階,也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí),也可以分享給身邊好友一起學(xué)習(xí)

如果你有需要的話,可以點擊獲取

droid學(xué)習(xí)PDF+架構(gòu)視頻+面試文檔+源碼筆記](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)** ,還有高級架構(gòu)技術(shù)進階腦圖、Android開發(fā)面試專題資料,高級進階架構(gòu)資料這些都是我閑暇還會反復(fù)翻閱并給下屬員工學(xué)習(xí)的精品資料。在腦圖中,每個知識點專題都配有相對應(yīng)的實戰(zhàn)項目,可以有效的幫助大家掌握知識點。

總之也是在這里幫助大家學(xué)習(xí)提升進階,也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí),也可以分享給身邊好友一起學(xué)習(xí)

如果你有需要的話,可以點擊獲取

[外鏈圖片轉(zhuǎn)存中…(img-3Omn4wKu-1618563073953)]

[外鏈圖片轉(zhuǎn)存中…(img-6nWu1wkF-1618563073955)]

相信自己,沒有做不到的,只有想不到的

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的离开小厂进大厂的第一周,BTAJ大厂最新面试题汇集,面试总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美人妻精品一区二区 | 亚洲一区免费电影 | 亚洲成人黄色在线 | 色噜噜狠狠一区二区三区果冻 | 国产欧美熟妇另类久久久 | 亚洲av色香蕉一区二区三区 | 夜夜小视频 | 骚视频在线观看 | 黄色片在哪里看 | 色wwwwww| 国产无套内射普通话对白 | 国产稀缺真实呦乱在线 | 国产久精品 | 黄色应用在线观看 | 亚洲国产精品视频一区 | 国产精品无码久久av | 成人入口 | 亚洲一区二区免费看 | 一本久久综合亚洲鲁鲁五月天 | 日本aa在线观看 | 不卡一区二区三区四区 | 色婷婷久久综合 | 好屌妞视频这里只有精品 | 黄色日韩| 天天躁日日躁狠狠躁喷水 | 久久伊人爱 | 天天干影院 | 在线视频国产一区 | 蜜臀久久精品久久久用户群体 | 日本少妇久久久 | xxxx视频在线 | 青青青草视频在线 | 精品成人一区二区三区 | 好吊妞视频一区二区三区 | 亚洲成人精品一区二区 | 亚洲天堂手机版 | 一级黄视频 | 激情综合五月网 | 麻豆传媒网站在线观看 | 97小视频| 91国产在线播放 | 亚洲19p| 三上悠亚久久 | 99国产精品99久久久久久 | 丰满岳跪趴高撅肥臀尤物在线观看 | 亚洲精品久久久狠狠狠爱 | 一区二区免费在线 | 欧美成人三级在线 | 一本大道久久久久精品嫩草 | 日本成人片在线 | 永久黄网站色视频免费观看w | 亚洲精品一区二区潘金莲 | 午夜啪视频 | 第一次破处视频 | 毛片毛片毛片毛片 | 成人在线h | 9色视频在线观看 | 狠狠艹视频 | 中文字幕无码乱码人妻日韩精品 | 久久久久久久久久久久久久久久久 | 日本一区二区三区久久久久 | 日韩在线视频中文字幕 | 三级中文字幕 | 奇米第四色在线 | 久久伊人亚洲 | 日韩性猛交ⅹxxx乱大交 | 1024亚洲天堂| 福利社av | 毛片基地免费观看 | 久久久久99精品国产片 | bl无遮挡高h动漫 | 亚洲精品男人的天堂 | 无码精品一区二区三区AV | 波多野一区二区 | 久久久麻豆 | 日本三级片在线观看 | 午夜免费福利网站 | 91在线无精精品入口 | 不卡av免费在线观看 | 97成网| 免费人妻一区二区三区 | 国产精品久久久久久久久久 | 亚洲一区二区三区高清 | 星空大象在线观看免费播放 | 四虎国产成人精品免费一女五男 | 性生活视频软件 | 蜜桃色999 | 99热麻豆 | 精品日韩av | 在线播放a | 自拍偷拍亚洲区 | 国产成人一区二区三区影院在线 | 美女福利视频导航 | 91精品国产91久久久久久黑人 | 国产视频一区二区三区在线观看 | 三级爱爱 | 日日干天天爽 | 国内精品久久久久 | 波多野结衣中文字幕一区二区 |