主頁 > 移動端開發 > 默默自學3年,大廠面試遭拒6次,埋頭啃讀30天,怒斬位元組offer!這份面試合集必須分享給你們!

默默自學3年,大廠面試遭拒6次,埋頭啃讀30天,怒斬位元組offer!這份面試合集必須分享給你們!

2020-11-06 17:11:06 移動端開發

前言

金九銀十一過,面試看題不停,今年準備不充分,明年面試不得行,

作為已經邁過面試這道大坎的人,近幾日利用閑暇的時間梳理了一遍之前的一些面試題,不整理不知道,一整理嚇一跳,整整1000道不多不少,

這份整理合集內容很多,需要細啃,看完絕壁穩賺不虧!之前面試官常問到的高頻技術問題+解答都涵蓋其中:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等,
由于篇幅有限僅展示部分試題,已經整理出pdf合集,點這里可以看到全部內容,免費進行下載,

MyBatis 面試題

什么是 Mybatis?

1.Mybatis 是一個半 ORM(物件關系映射)框架,它內部封裝了 JDBC,開發時只需要關注 SQL 陳述句本身,不需要花費精力去處理加載驅動、創建連接、創建statement 等繁雜的程序,程式員直接撰寫原生態 sql,可以嚴格控制 sql 執行性能,靈活度高,

2、MyBatis 可以使用 XML 或注解來配置和映射原生資訊,將 POJO 映射成資料庫中的記錄,避免了幾乎所有的 JDBC 代碼和手動設定引數以及獲取結果集,

3、通過 xml 檔案或注解的方式將要執行的各種 statement 配置起來,并通過java 物件和 statement 中 sql 的動態引數進行映射生成最終執行的 sql 陳述句,最后由 mybatis 框架執行 sql 并將結果映射為 java 物件并回傳,(從執行 sql 到回傳 result 的程序),

Mybaits 的優點:

1、基于 SQL 陳述句編程,相當靈活,不會對應用程式或者資料庫的現有設計造成任何影響,SQL 寫在 XML 里,解除 sql 與程式代碼的耦合,便于統一管理;提供 XML標簽,支持撰寫動態 SQL 陳述句,并可重用,

2、與 JDBC 相比,減少了 50%以上的代碼量,消除了 JDBC 大量冗余的代碼,不需要手動開關連接

3、很好的與各種資料庫兼容(因為 MyBatis 使用 JDBC 來連接資料庫,所以只要JDBC 支持的資料庫 MyBatis 都支持),

4、能夠與 Spring 很好的集成;

5、提供映射標簽,支持物件與資料庫的 ORM 欄位關系映射;提供物件關系映射標簽,支持物件關系組件維護,

MyBatis 與 Hibernate 有哪些不同?

1、Mybatis 和 hibernate 不同,它不完全是一個 ORM 框架,因為 MyBatis 需要程式員自己撰寫 Sql 陳述句,

2、Mybatis 直接撰寫原生態 sql,可以嚴格控制 sql 執行性能,靈活度高,非常適合對關系資料模型要求不高的軟體開發,因為這類軟體需求變化頻繁,一但需求變化要求迅速輸出成果,但是靈活的前提是 mybatis 無法做到資料庫無關性,如果需要實作支持多種資料庫的軟體,則需要自定義多套 sql 映射檔案,作業量大,

3、Hibernate 物件/關系映射能力強,資料庫無關性好,對于關系模型要求高的軟體,如果用 hibernate 開發可以節省很多代碼,提高效率,

ZooKeeper 面試題

ZAB 協議?

ZAB 協議是為分布式協調服務 Zookeeper 專門設計的一種支持崩潰恢復的原子廣播協議,

ZAB 協議包括兩種基本的模式:崩潰恢復和訊息廣播,當整個 zookeeper 集群剛剛啟動或者 Leader 服務器宕機、重啟或者網路故障導致不存在過半的服務器與 Leader 服務器保持正常通信時,所有行程(服務器)進入崩潰恢復模式,首先選舉產生新的 Leader 服務器,然后集群中 Follower 服務器開始與新的 Leader 服務器進行資料同步,當集群中超過半數機器與該 Leader服務器完成資料同步之后,退出恢復模式進入訊息廣播模式,Leader 服務器開始接收客戶端的事務請求生成事物提案來進行事務請求處理,

服務端處理 Watcher 實作

1、服務端接收 Watcher 并存盤

接收到客戶端請求,處理請求判斷是否需要注冊 Watcher,需要的話將資料節點的節點路徑和 ServerCnxn(ServerCnxn 代表一個客戶端和服務端的連接,實作了 Watcher 的 process 介面,此時可以看成一個 Watcher 物件)存盤在WatcherManager 的 WatchTable 和 watch2Paths 中去,

2、Watcher 觸發

以服務端接收到 setData() 事務請求觸發 NodeDataChanged 事件為例:

2.1 封裝 WatchedEvent

將通知狀態(SyncConnected)、事件型別(NodeDataChanged)以及節點路徑封裝成一個 WatchedEvent 物件

2.2 查詢 Watcher

從 WatchTable 中根據節點路徑查找 Watcher

2.3 沒找到;說明沒有客戶端在該資料節點上注冊過 Watcher

2.4 找到;提取并從 WatchTable 和 Watch2Paths 中洗掉對應 Watcher(從這里

可以看出 Watcher 在服務端是一次性的,觸發一次就失效了)

3、呼叫 process 方法來觸發 Watcher

這里 process 主要就是通過 ServerCnxn 對應的 TCP 連接發送 Watcher 事件通知,

Zookeeper 檔案系統

Zookeeper 提供一個多層級的節點命名空間(節點稱為 znode),與檔案系統不同的是,這些節點都可以設定關聯的資料,而檔案系統中只有檔案節點可以存放資料而目錄節點不行,

Zookeeper 為了保證高吞吐和低延遲,在記憶體中維護了這個樹狀的目錄結構,這種特性使得 Zookeeper 不能用于存放大量的資料,每個節點的存放資料上限為1M,

Java 并發編程(一)

在 java 中守護執行緒和本地執行緒區別?

java 中的執行緒分為兩種:守護執行緒(Daemon)和用戶執行緒(User),任何執行緒都可以設定為守護執行緒和

用戶執行緒,通過方法 Thread.setDaemon(boolon);true 則把該執行緒設定為守護執行緒,反之則為用戶執行緒,

Thread.setDaemon()必須在 Thread.start()之前呼叫,否則運行時會拋出例外,

兩者的區別:

唯一的區別是判斷虛擬機(JVM)何時離開,Daemon 是為其他執行緒提供服務,如果全部的 User Thread 已

經撤離,Daemon 沒有可服務的執行緒,JVM 撤離,也可以理解為守護執行緒是 JVM 自動創建的執行緒(但不

一定),用戶執行緒是程式創建的執行緒;比如 JVM 的垃圾回收執行緒是一個守護執行緒,當所有執行緒已經撤離,

不再產生垃圾,守護執行緒自然就沒事可干了,當垃圾回收執行緒是 Java 虛擬機上僅剩的執行緒時,Java 虛擬

機會自動離開,擴展:Thread Dump 列印出來的執行緒資訊,含有 daemon 字樣的執行緒即為守護行程,可

能會有:服務守護行程、編譯守護行程、windows 下的監聽 Ctrl+break的守護行程、Finalizer 守護行程、

參考處理守護行程、GC 守護行程,

死鎖與活鎖的區別,死鎖與饑餓的區別?

死鎖:是指兩個或兩個以上的行程(或執行緒)在執行程序中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去,產生死鎖的必要條件:

1、互斥條件:所謂互斥就是行程在某一時間內獨占資源,

2、請求與保持條件:一個行程因請求資源而阻塞時,對已獲得的資源保持不放,

3、不剝奪條件:行程已獲得資源,在末使用完之前,不能強行剝奪,

4、回圈等待條件:若干行程之間形成一種頭尾相接的回圈等待資源關系,

活鎖:任務或者執行者沒有被阻塞,由于某些條件沒有滿足,導致一直重復嘗試,失敗,嘗試,失敗,活

鎖和死鎖的區別在于,處于活鎖的物體是在不斷的改變狀態,所謂的“活”, 而處于死鎖的物體表現為等

待;活鎖有可能自行解開,死鎖則不能,

饑餓:一個或者多個執行緒因為種種原因無法獲得所需要的資源,導致一直無法執行的狀態,

什么是 FutureTask?使用 ExecutorService 啟動任務,

在 Java 并發程式中 FutureTask 表示一個可以取消的異步運算,它有啟動和取消運算、查詢運算是否完成

和取回運算結果等方法,只有當運算完成的時候結果才能取回,如果運算尚未完成 get 方法將會阻塞,一

個 FutureTask 物件可以對呼叫了 Callable 和 Runnable 的物件進行包裝,由于 FutureTask 也是呼叫了

Runnable介面所以它可以提交給 Executor 來執行,

Spring合集

Spring Framework 有哪些不同的功能?

輕量級 - Spring 在代碼量和透明度方面都很輕便,IOC - 控制反轉 AOP - 面向切面編程可以將應用業務邏

輯和系統服務分離,以實作高內聚,容器 - Spring 負責創建和管理物件(Bean)的生命周期和配置,

MVC - 對 web 應用提供了高度可配置性,其他框架的集成也十分方便,事務管理 - 提供了用于事務管理的

通用抽象層,Spring 的事務支持也可用于容器較少的環境,JDBC 例外 - Spring的 JDBC 抽象層提供了一

個例外層次結構,簡化了錯誤處理策略,

不同版本的 Spring Framework 有哪些主要功能?

Version Feature

Spring 2.5 發布于 2007 年,這是第一個支持注解的版本,

Spring 3.0 發布于 2009 年,它完全利用了 Java5 中的改進,并為 JEE6 提供了支
持,

Spring 4.0 發布于 2013 年,這是第一個完全支持 JAVA8 的版本,

解釋 JDBC 抽象和 DAO 模塊,

通過使用 JDBC 抽象和 DAO 模塊,保證資料庫代碼的簡潔,并能避免資料庫資源錯誤關閉導致的問題,

它在各種不同的資料庫的錯誤資訊之上,提供了一個統一的例外訪問層,它還利用 Spring 的 AOP 模塊給

Spring 應用中的物件提供事務管理服務,
合集一部分截圖
合集二部分截圖

如何獲得這份優質的資料呢?

——點這里可以看到全部內容,免費進行下載,

整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編~

你的支持,我的動力;祝各位前程似錦,offer不斷!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/204628.html

標籤:其他

上一篇:這可能是全網最詳細的 Java 并發鎖知識點剖析了!

下一篇:阿里、位元組跳動、小米、騰訊面試題:基礎+JVM+框架+多執行緒+資料庫+演算法等,掌握80%必進大廠

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more