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

一面

  • 介紹一下自己

  • 問項目經歷, 聊"數據同步"

  • 接著聊上了 K8S 的項目

  • 有沒有什么鉆研得比較深得技術?(大佬:kubernetes, golang, prometheus, java)

  • kubernetes 的架構是怎么樣的?

  • 這個問題很大,拆成 apiserver、controller、kubelet、scheduler 講了一下

  • golang 與 java 的比較

  • 這個問題又很大,當時主要對比了 vm、協程支持、面向對象和泛型的區別、以及自己對各自使用場景的一些理解

  • golang 的 gc 算法

  • 知道是三色標記,不過細節說不上來

  • 從無限的字符流中, 隨機選出 10 個字符

  • 沒見過也沒想出來,查了一下是蓄水池采樣算法,經典面試題,沒刷題吃虧了

  • 怎么擴展 kubernetes scheduler, 讓它能 handle 大規模的節點調度

  • 單節點提速:優選階段隨機取部分節點進行優選;水平擴展 scheduler 節點,pod 做一致性 hash 來決定由哪個scheduler 調度

  • 你有什么想問我的?

一面其實有點僵,大佬自己完全沒放開,面試官對大佬的回答沒有什么反饋和深入,都是"哦好的"然后就過了。所以大佬當時面完覺得自己其實已經掛了(要是對候選人不感興趣,有時候也就問完問題走個過場溜了),后來收到二面電話著實吃驚了一下。

二面

  • 先聊了聊項目

  • 給 Prometheus 做了哪些改動?

  • 自研配置中心, 具體做了哪些內容?

  • 有用過 MySQL 的什么高級特性嗎?

  • 這里不太理解,我問什么算高級特性,面試官就切換到了下一個問題

  • 配置中心的核心數據表是怎么設計的?

  • 為什么在業務里用 Redis, Redis 有什么優點?

  • 單線程:并發安全;高性能;原語與數據結構豐富;采用廣泛,踩坑成本低

  • 對 Redis 里數據結構的實現熟悉嗎?

  • 說了一個 zset 跳表

  • 用過 Redis 的哪些數據結構, 分別用在什么場景?

  • Java 初始化一個線程池有哪些參數可以配置, 分別是什么作用?

  • 自己寫的 Java 應用調優過哪些 JVM 參數, 為什么這么調優?(這個問住了,大佬只知道最大堆最小堆,開 G1,開 GC 日志以及 OOM dumper 這些基本的)

  • 用 Jetty 的時候有沒有配什么參數, 為什么這么配?

  • Jetty QTP 等待隊列配置成無限的話, 你覺得好嗎? 會有什么問題嗎?

  • 用過 Linux Bash 里的哪些命令, 分別用它們干嘛?

  • 一道筆試題: 需要在給的鏈接中作答, 不能 google, 不能跳出, 不能用 IDE:

題目是這樣的:

啟動兩個線程, 一個輸出 1,3,5,7…99, 另一個輸出 2,4,6,8…100 最后 STDOUT 中按序輸出 1,2,3,4,5…100

大佬:用 Go 實現吧 面試官:不可以,用 Java 的 notify 機制實現 大佬::(還沒意識到問題的嚴峻) 那用 Java BlockingQueue 面試官:說不可以, 要求用 Java 的 wait + notify 機制來實現

因為完全沒寫過 wait + notify,只能表示不會, 面試官說那行吧你可以用 go 寫

最后用 go channel 實現了一版, 不過給的網頁上不能運行代碼,也不知道寫得對不對,然后面試結束。

這一輪面試官延續了一面的風格,問完一題就趕忙下一題了,似乎沒有表現出對我的回答有興趣或認可。因此這輪面完,他覺得自己可能又掛了…

三面

  • 依然先聊項目

  • 對監控警報的項目很感興趣, 問了挺多細節,。最后問了一個問題::現在要你實現一個語義不弱于 PromQL 的查詢語言, 你能實現嗎?(這里雖然看過一些 Prometheus 的代碼,但其實對 PromQL 的 lexer 和 parser 部分沒有細看,還好之前因為數據同步項目里想寫聲明式 Stream SQL 研究過一點 ANTLR,用 ANTLR 寫語法 + AST 遍歷塞查詢邏輯給糊弄過去了。)

  • 覺得做得最深入的項目是什么(當然是數據同步)

  • 聊數據同步項目

  • 問 Linux 掌握得怎么樣?(沒有系統學習過,基本上是自己運維踩坑積累的)

  • 問 Golang 掌握得怎么樣?(用了半年, 看過 effective go)

  • 問算法掌握得怎么樣?(到圖為止都可以)

  • 問最短路算法(只記得 dijkstra 了,描述了代碼流程)

  • k8s 掌握得怎么樣?(沒有自己寫過 controller 和 scheduler,但是對概念都很熟悉,看過 xxx 這幾部分的源碼)

  • k8s 的 exec 是怎么實現的?(這個問題正中下懷,之前寫了 PingCAP 的小作業正好對這塊特別熟悉)

這輪聊得順暢多了。同時發現螞蟻的面試官似乎挺喜歡讓你自己評價:“你覺得自己 xxx 掌握得怎么樣?”(只有五位面試官,樣本不夠大,不能作數哦),這類問題其實我慌得要死,怕吹過頭了答不上來,面試掛了事小,丟了面子事大。早知道就預習一下怎么吹噓了。

四面

  • 介紹一下自己

  • 覺得自己基礎知識掌握怎么樣

  • 平時一般會用到哪些數據結構?

  • 鏈表和數組相比, 有什么優劣?

  • 如何判斷兩個無環單鏈表有沒有交叉點

  • 如何判斷兩個有環單鏈表有沒有交叉點

  • 如何判斷一個單鏈表有沒有環, 并找出入環點

  • TCP 和 UDP 有什么區別?

  • 描述一下 TCP 四次揮手的過程中

  • TCP 有哪些狀態

  • TCP 的 LISTEN 狀態是什么

  • TCP 的 CLOSE_WAIT 狀態是什么

  • 建立一個 socket 連接要經過哪些步驟

  • 常見的 HTTP 狀態碼有哪些

  • 301和302有什么區別

  • 504和500有什么區別

  • HTTPS 和 HTTP 有什么區別

  • 寫一個算法題: 手寫快排

這一輪全程問的基礎知識,基礎扎實的話就沒問題了,不過大佬感覺有一點像校招的問法。

五面

  • 介紹一下自己

  • 在 k8s 上做過哪些二次開發?

  • 自己用 Helm 構建過 chart 嗎?有哪些?

  • 有沒有考慮過自己封裝一個面向研發的 PaaS 平臺?

  • 配置中心做了什么?

  • 為什么不用 zookeeper?

  • 配置中心如何保證一致性?

  • Spring 里用了單例 Bean, 怎么保證訪問 Bean 字段時的并發安全?

  • 用并發安全的數據結構,比如 ConcurrentHashMap;或者加互斥鎖

  • 假如我還想隔離兩個線程的數據, 怎么辦?

  • ThreadLocal,然后舉了個例子

  • Golang 里的逃逸分析是什么?怎么避免內存逃逸?

  • 這個不知道,認慫了

  • 對比一下 Golang 和 Java 的 GC

  • 答了一下 CMS、G1和三色標記,我對比的點是 JVM 有分代回收,Go 的 Runtime 沒有,沒能深入地講

  • Golang 的 GC 觸發時機是什么

  • 閾值觸發;主動觸發;兩分鐘定時觸發;

  • 有沒有寫過 k8s 的 Operator 或 Controller?(大佬:沒有寫過)

  • 談一談你對微服務架構的理解

  • 大體思路"微服務本質是人員組織架構演進與關注點分離"

  • 談一談你對 Serveless 的理解

  • 大體思路"Serveless 是繼 docker 與容器編排之后的又一次應用開發與基礎設施提供方之間的邊界劃分"

  • 你認為 Serveless 是未來嗎? 為什么?

  • 大體思路"是云服務的未來,把蛋糕從企業的IT、運維與中間件部門切走,形成規模效應,做得越多賺得越多;公司內的話 servless能夠幫助加速前臺業務迭代,但對中后臺的收益還看不到,未來可能會有比 servless 更適合中后臺的架構"

面試官:最后你有什么要問我的?

大佬:為什么足足安排了五輪技術面,而且其中有兩輪似乎和 k8s 沒有關系啊?

面試官:我們覺得你做過的東西挺多的,各個方向都想讓你嘗試一下

我:那這輪是最后一輪技術面嗎?

面試官:不一定

后續還問了面試官一些業務相關的問題,就不贅述了

五面最后的三個吹水問題大佬說還挺感興趣,可惜面試官只是聽他講,沒有跟他討論。還有就是問了面試官才知道,二面四面的面試官是 PaaS 平臺那邊的,因此主要問 Java 沒有涉及到 k8s 和 go。

六面(HR 面)

之前聽說過阿里系的 HR 是來"聞味道的"(看你是否適合阿里的風格),而且有一票否決權。所以還是挺有壓力的。

  • 問經歷

  • 為什么要考慮出來看看呢?

  • 金句:“現在自己的技術成長有點碰到瓶頸,加上一直對您公司欽慕有加relaxed”"

  • 現在公司的主營業務是什么?(這塊往技術上問了很多,感覺是想考察我解釋復雜問題的能力)

  • 現在帶人嗎?report 層級是怎樣的?

  • 對自己這幾年的經歷滿意嗎?

  • 覺得自己有什么缺點?

  • 碰到過什么很挫敗的事情嗎?

  • 未來的職業規劃是怎樣的?

  • 看機會的時候,主要考慮的是待遇、平臺、人員還是什么其他因素?

  • 現在的待遇如何

  • 有什么想問我的?

整體聊了 40 多分鐘,話題挺廣的,面試官也說了系統部這邊壓力挺大的,優秀的人才才能留下來。

大佬覺得 HR 面里除了談薪酬的部分沒有什么可準備的,想說什么直說就行。因為到了 HR 面至少證明你的技術沒什么問題,直說出來方便 HR 判斷兩邊的價值觀是否合拍,假如真的不合拍,那其實在 HR 這一面掛了比起進去之后再后悔又跳槽要好很多,畢竟大家都不喜歡頻繁跳槽的簡歷。

最后

需要的朋友可以點擊:戳這里免費領取

還有Java核心知識點+全套架構師學習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring源碼合集+Java架構實戰電子書+2021年最新大廠面試題。
邊的價值觀是否合拍,假如真的不合拍,那其實在 HR 這一面掛了比起進去之后再后悔又跳槽要好很多,畢竟大家都不喜歡頻繁跳槽的簡歷。

最后

需要的朋友可以點擊:戳這里免費領取

還有Java核心知識點+全套架構師學習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring源碼合集+Java架構實戰電子書+2021年最新大廠面試題。
在這里插入圖片描述

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

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

相關文章

文件描述符、函數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;…

【聊透SpringMVC】java技術經理崗位職責

緩存維護方案一 如果是一讀&#xff08;線程B&#xff09;一寫&#xff08;線程A&#xff09;操作&#xff0c;「先操作緩存&#xff0c;再操作數據庫」。流程圖如下所示&#xff1a; 1.線程A發起一個寫操作&#xff0c;第一步del cache 2.線程A第二步寫入新數據到DB 3.線程…

【聊透SpringMVC】自學java和三大框架要多久

餓了么一面&#xff08;Java&#xff09; hashmap源碼問題 HashMap底層結構 put操作講一下 HashMap、HashMap如何保證線程安全、ConcurrentHashMap JVM有哪些回收算法&#xff0c;對應的收集器有哪些&#xff1f; jvm g1的內存模型講一下&#xff0c;G1和CMS收集器的區別&#…

【設計思想解讀開源框架】mysql官方文檔中文版下載免費

01 源碼分析 源碼閱讀&#xff0c;最核心有三點&#xff1a;技術基礎強烈的求知欲耐心。 1.1 設計模式&#xff08;45設計模式&#xff1a;介紹優缺點應用實例源代碼解決問題&#xff09; 1.2 Spring復習大綱&#xff1a;依賴注入IocBeans注解數據訪問AOPMVC等 1.3 Spring全家…

命令新參

命令形參&#xff1a; 命令行參數是使用main()函數參數來處理的&#xff0c;其中&#xff0c;argc是指傳入參數的個數&#xff0c;argv[]是一個指針數組&#xff0c;指向傳遞給程序的每個參數。 應當指出的是&#xff0c; argv[0]存儲程序的名稱&#xff0c;argv[1]是一個指向…

【金三銀四】啟動mysql服務器

微服務架構 ①微服務概念&#xff1a; ②Spring Cloud微服務架構&#xff1a; 海量數據處理 ①&#xff1a;經典的海量數據處理面試題 高可用架構 ①基于 Hystrix 實現高可用&#xff1a; ②限流&#xff1a; ③熔斷&#xff1a; 高并發架構 ①消息隊列&#xff1a; ②搜索…