一步搞定你疑惑的數據結構與算法系列,原理+實戰講解

螞蟻金服一面:

下午杭州的電話,問有沒有空,果斷有空,雖然感覺略顯緊張,有點懵逼。

面試的題目:

  1. HashMap和Hashtable的區別
  2. 實現一個保證迭代順序的HashMap
  3. 說一說排序算法,穩定性,復雜度
  4. 說一說GC
  5. 可以保證的實習時長
  6. 職業規劃

整體來說,一面的基礎性問題比較多,所以博主基本都答出來了,準備過還是有些用處的。所以一面完了感覺還不錯,接著第二天下午就二面了。

Java程序員秋招三面螞蟻金服,我總結了所有面試題,也不過如此

螞蟻金服二面

二面是我最慌的面試,因為二面是最關鍵的,是最大的主管面試,所以非常關鍵,整體來說,二面的節奏非常快,和一面完全不同,面試官很希望我言簡意賅的說完答案,所以面的不算很好,當時完了又以為GG了,好在最后還是幸運的過了,面試問題如下:

  1. 自我介紹。
  2. JVM如何加載一個類的過程,雙親委派模型中有哪些方法?
  3. HashMap如何實現的?
  4. HashMap和Concurrent HashMap區別, Concurrent HashMap 線程安全嗎, Concurrent HashMap如何保證 線程安全?
  5. HashMap和HashTable 區別,HashTable線程安全嗎?
  6. 進程間通信有哪幾種方式?
  7. JVM分為哪些區,每一個區干嗎的?
  8. JVM如何GC,新生代,老年代,持久代,都存儲哪些東西?
  9. GC用的引用可達性分析算法中,哪些對象可作為GC Roots對象?
  10. 快速排序,過程,復雜度?
  11. 什么是二叉平衡樹,如何插入節點,刪除節點,說出關鍵步驟。
  12. TCP如何保證可靠傳輸?三次握手過程?
  13. TCP和UDP區別?
  14. 滑動窗口算法?
  15. Linux下如何進行進程調度的?
  16. Linux下你常用的命令有哪些?
  17. 操作系統什么情況下會死鎖?
  18. 常用的hash算法有哪些?
  19. 什么是一致性哈希?
  20. 如何理解分布式鎖?
  21. 數據庫中的范式有哪些?
  22. 數據庫中的索引的結構?什么情況下適合建索引?
  23. Java中的NIO,BIO,AIO分別是什么?
  24. 用什么工具調試程序?JConsole,用過嗎?
  25. 現在JVM中有一個線程掛起了,如何用工具查出原因?
  26. 線程同步與阻塞的關系?同步一定阻塞嗎?阻塞一定同步嗎?
  27. 同步和異步有什么區別?
  28. 線程池用過嗎?
  29. 如何創建單例模式?說了雙重檢查,他說不是線程安全的。如何高效的創建一個線程安全的單例?
  30. concurrent包下面,都用過什么?
  31. 常用的數據庫有哪些?redis用過嗎?
  32. 了解hadoop嗎?說說hadoop的組件有哪些?hdfs,hive,hbase,zookeeper。說下mapreduce編程模型。
  33. 你知道的開源協議有哪些?
  34. 你知道的開源軟件有哪些?
  35. 你最近在看的書有哪些?
  36. 你有什么問題要問我嗎?
  37. 了解哪些設計模式?說說都用過哪些設計模式
  38. 如何判斷一個單鏈表是否有環?
  39. 操作系統如何進行分頁調度?
  40. 匿名內部類是什么?如何訪問在其外面定義的變量?

二面面試官問的很急,我答的也快,所以有兩個問題答的不好,但是面試官讓我覺得有一種肅然起敬的感覺,因為他說話比較快,但是都能說到點子上,最關鍵的說的話非常讓人容易接受。

二面過了,當天晚上我就接到了三面的電話(阿里的效率真的讓我瞠目結舌)

Java程序員秋招三面螞蟻金服,我總結了所有面試題,也不過如此

螞蟻金服三面

三面已經是交叉面試了,基本都圍繞我的項目展開,我經過前面幾次的面試之后,這個時候已經擁有了很高的面試經驗值了,所以三面的時候我一點不慌了,回答問題非常穩重,三面的問題如下:

  1. 自我介紹,做過什么項目。
  2. java虛擬機的區域如何劃分,每一個區的動能,這一塊自由發揮。
  3. 雙親委派模型中,從頂層到底層,都是哪些類加載器,分別加載哪些類?
  4. 有沒有可能父類加載器和子類加載器,加載同一個類?如果加載同一個類,該使用哪一個類?
  5. HashMap的結構,get(),put()是如何實現的?HashMap有哪些問題?
  6. ConcurrentHashMap的get(),put(),又是如何實現的?ConcurrentHashMap有哪些問題? ConcurrentHashMap的鎖是讀鎖還是寫鎖?
  7. HashMap與HashTable的區別
  8. sleep()和wait()分別是哪個類的方法,有什么區別?synchronized底層如何實現的?用在代碼塊和方法上有什么區別?
  9. 什么是線程池?如果讓你設計一個動態大小的線程池,如何設計,應該有哪些方法?
  10. 什么是死鎖?JVM線程死鎖,你該如何判斷是因為什么?如果用VisualVM,dump線程信息出來,會有哪些信息?這一塊問的很多…問的我懵了. 因為并沒有實際操作過 = =
  11. 查看jvm虛擬機里面堆、線程的信息,你用過什么命令?我只用過圖形界面VisualVM。。。
  12. 垃圾回收算法有哪些?CMS知道嗎?如何工作的?
  13. 數據庫中什么是事務?事務的隔離級別?事務的四個特性?什么是臟讀,幻讀,不可重復讀?
  14. 數據庫索引的結構有哪些?我說B樹和B+樹,他說只有這兩個嗎。我又說全文倒排索引。然后介紹B+樹的結構。
  15. 數據庫中的分頁查詢語句怎么寫?
  16. 什么是一致性哈希?用來解決什么問題?
  17. Redis的存儲結構,或者說如何工作的,與mysql的區別?有哪些數據類型?
  18. 項目中用到redis,為什么選用redis,了解其他NoSQL數據庫嗎?在你的項目中是如何運用redis的?key是什么,value是什么?
  19. 歸并排序的過程?時間復雜度?空間復雜度?
  20. 你平常用什么排序?快速排序。說說在那些場景下適用,哪些場景下不適用。
  21. 你在項目中做什么?因為我用到Solr,他就問我Solr是如何工作的?

如何快速更新自己的技術積累?

  • 在現有的項目里,深挖技術,比如用到netty可以把相關底層代碼和要點都看起來。
  • 如果不知道目前的努力方向,就看自己的領導或公司里技術強的人在學什么。
  • 知道努力方向后不知道該怎么學,就到處去找相關資料然后練習。
  • 學習以后不知道有沒有學成,則可以通過面試去檢驗。

我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、喪失斗志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

以上面試專題的答小編案整理成面試文檔了,文檔里有答案詳解,以及其他一些大廠面試題目,有需要的朋友點擊這里即可免費領取

八年CRUD,疫情備戰三個月,三面頭條、四面阿里拿offer面經分享

八年CRUD,疫情備戰三個月,三面頭條、四面阿里拿offer面經分享

m/vip204888/java-p7)**

[外鏈圖片轉存中…(img-L5eBiDKH-1626257253475)]

[外鏈圖片轉存中…(img-NoVPqu0U-1626257253477)]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385612.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385612.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385612.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

互斥量(互斥鎖)

一、互斥量mutex Linux提供一把互斥鎖mutex(也稱之為互斥量)每個線程在對資源操作前都嘗試先加鎖,成功加鎖才能操作,操作結束后解鎖。資源還是共享的,線程間也還是競爭的,但通過鎖將資源的訪問變為互斥操作,而后與時間…

一眼就能看懂的Java自學手冊,終局之戰

珍藏版(1)——Mybatis入門 1.什么是MyBatis 2.為什么我們要用Mybatis? 3.Mybatis快速入門 3.1 導入開發包 3.2準備測試工作 3.3 創建mybatis配置文件 3.4 編寫工具類測試是否獲取到連接 3.5 創建實體與映射關系文件 3.6 編寫DAO 4.Mybatis工作…

Centos 6.x

1. centos升級gcc教程:鏈接 2. 虛擬機中的Centos聯通網絡:鏈接 3. 虛擬機安裝Centos7系統教程:鏈接

Java虛擬機學習集錦是我攢來的,帶你碾壓面試官!

1. 一致性(Consistency) 一致性(Consistency)是指多副本(Replications)問題中的數據一致性。可以分為強一致性、順序一致性與弱一致性。 1.1 強一致性(Strict Consistency) 也稱為…

Java虛擬機學習集錦是我攢來的,看這篇文章準沒錯!

一面 介紹一下自己 問項目經歷, 聊"數據同步" 接著聊上了 K8S 的項目 有沒有什么鉆研得比較深得技術?(大佬:kubernetes, golang, prometheus, java) kubernetes 的架構是怎么樣的? 這個問題很大,拆成 …

文件描述符、函數open和openat

文件描述符 pcb&#xff1a;結構體一個進程有一個文件描述符&#xff1a;1024文件描述符&#xff1a;尋找磁盤文件函數open和openat 函數原型&#xff1a; include<sys/stst.h> #include<fcntl.h>int open(const char *pathname, int flags); int open(const ch…

Java這些高端技術只有你還不知道,移動架構師成長路線

并發編程共享模型篇 并發編程概覽進程與線程Java線程共享模型之管程共享模型之內存共享模型之無鎖共享模型之不可變共享模型之工具 共享模型之管程 原理之 Monitor(鎖) 原理之偽共享 模式篇—正確姿勢 同步模式之保護性智停同步模式之Blking同步模式之順序控制異步模式之生產…

函數read、write、lseek

函數原型&#xff1a; #include<unistd.h> ssize_t read(int fd, void *buf, size_t count);返回值&#xff1a;讀到的字節數&#xff0c;若已到文件尾&#xff0c;返回0&#xff1b;若出錯&#xff0c;返回-1 參數&#xff1a; fd&#xff1a;函數open的返回值buf&a…

Java這些高端技術只有你還不知道,薪資翻倍

正文 我的第一份工作是在一家外企&#xff0c;當時抱著“逃離”上海的想法去了二線城市的分公司&#xff0c;但是管理文化氛圍跟總部幾乎都是一樣的&#xff0c;這份工作經歷對我后面的工作不論是做事風格、習慣上還是思考問題的方式方法上都有很大的影響。后面陸續進入國企&a…

函數dup和dup2

函數原型&#xff1a; #include<unistd.h> int dup(int oldfd);返回值&#xff1a;若成功&#xff0c;返回新的文件描述符&#xff1b;若出錯&#xff0c;返回-1 參數&#xff1a; oldfd&#xff1a;要復制的文件描述符dup調用成功&#xff1a;有兩個文件描述符指向同…

Java進階面試資料無償分享!真香系列

8-22 投遞簡歷 8-24 一面&#xff08;大概1h50min&#xff09; 0、currenthashmap怎么擴容的&#xff1f;fwn為什么固定hash -1&#xff0c;這樣設計有什么好處&#xff1f;幫助擴容是發生在什么階段?讀線程和寫線程都會幫助擴容嗎&#xff1f;擴容的時候任務具體怎么協調的&…

Java通用流行框架大全,絕對干貨

Java如何入門&#xff1f; 1、建立好開發環境 首先建立好開發環境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何開發&#xff0c;首先就是要把這個環境準備好&#xff0c;之后就可以去做各種嘗試&#xff0c;嘗試過程中就能逐漸建立信心。初學者往往在環境配…

Java集合類中絕對占有一席之地的List,漲薪7K!

一、先來解讀&#xff1a;23種設計模式要點 1.單例模式&#xff08;Singleton Pattern&#xff09; 2.工廠模式 3.抽象工廠模式&#xff08;Abstract Factory Pattern&#xff09; 4.模板方法模式&#xff08;Template Method Pattern&#xff09; 5.建造者模式&#xff08;Bu…

Java面試10大知識點總結寶典助你通關!已拿意向書!

Java基礎 1.Java語言的三大特性 2.Java語言主要特性 3. JDK和JRE有什么區別 4.Java基本數據類型及其封裝類 5.如果main方法被聲明為private會怎樣? 6.說明- -下public static void main(String argsQ])這段聲明里每個關鍵字的作用 7.與equals的區別 8.Object有哪些公用方法 9.…

互斥鎖、條件變量

一、互斥鎖 1. 函數原型&#xff1a; pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); pthread_mutex_destroy(pthread_mutex_t *mutex); 分析&#xff1a; pthread_mutex_t 類型&#xff0c;其本質是一個結構體&#xf…

Java面試你必須要知道的那些知識,深夜思考

如何提升自己的實力&#xff1f; Step 1&#xff1a;梳理自己的知識 對照下面這份學習大綱&#xff0c;梳理出自己的知識盲區&#xff0c;這份大綱里面的技術點完全對標P7崗的主流技術&#xff0c;因此這是一份很好的知識大綱筆記。 Step 2&#xff1a;查漏補缺&#xff0c;夯…

Java面試你必須要知道的那些知識,面試建議

二、面試題 面&#xff1a;考你幾個紅黑樹的知識點&#x1f980; 紅黑樹的數據結構都用在哪些場景&#xff0c;有什么好處&#xff1f;紅黑樹的時間復雜度是多少&#xff1f;紅黑樹中插入新的節點時怎么保持平衡&#xff1f; 面&#xff1a;2-3樹都是不沒看&#xff0c;回去…

存儲映射I/O(一)

一、存儲映射I/O 存儲映射I/O使一個磁盤文件與存儲空間中的一個緩沖區映射&#xff0c;于是當從緩沖區中取數據&#xff0c;就相當于讀文件中的相應字節。于此類似&#xff0c;將數據存入緩沖區&#xff0c;則相應的字節就自動寫入文件&#xff0c;這樣&#xff0c;就可在不不…

【絕對干貨】kafkastream廣告

Java如何入門&#xff1f; 1、建立好開發環境 首先建立好開發環境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何開發&#xff0c;首先就是要把這個環境準備好&#xff0c;之后就可以去做各種嘗試&#xff0c;嘗試過程中就能逐漸建立信心。初學者往往在環境配…

存儲映射IO(二)

mmap父子進程間通信 1. 測試代碼&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/wait.h>int var 100;int main(void) {int *p;pid_t pid;int fd;…