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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【毕业求职季】-听说你想去大厂看学姐,带你看看网易java面经

發(fā)布時間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【毕业求职季】-听说你想去大厂看学姐,带你看看网易java面经 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

前言

畢業(yè)求職季,你準備好了嗎?希望各位小伙伴能夠苦練技術,早日達成自己心儀的offer。

?

下面是博主收集的一些關于面試的比較幫的面試題目,有需要的小伙伴可自行訂閱下載。

Spring系列面試題129道(附答案解析)

Redis,快看看這40道面試題

MyBatis的27道面試題

73道Java面試題合集-多線程與進程

28道ZooKeeper面試題

?

【一面】

1.為什么做這個分布式的項目?說說你對分布式的理解?

1. 如何理解“分布式”?
經(jīng)常聽到”分布式系統(tǒng)“,”分布式計算“,”分布式算法“。分布式的具體含義是什么?狹義的分布是指,指多臺PC在地理位置上分布在不同的地方。

2. 分布式系統(tǒng)
分布式系統(tǒng):多個能獨立運行的計算機(稱為結點)組成。各個結點利用計算機網(wǎng)絡進行信息傳遞,從而實現(xiàn)共同的“目標或者任務”。

分布式程序: 運行在分布式系統(tǒng)上的計算機程序。

分布式計算:利用分布式系統(tǒng)解決來計算問題。在分布式計算里,一個問題被細化成多個任務,每個任務可以被一個或者多個計算機來完成。

區(qū)分分布式計算和并行計算:共同點都是大任務劃分為小任務。不同點: 分布式計算:基于多臺PC,每臺PC完成同一任務中的不同部分。分布式的計算被分解后的小任務互相之間有獨立性,節(jié)點之間的結果幾乎不互相影響,實時性要求不高。并行計算:基于同一個臺PC,利用CPU的多核共同完成一個任務。

1)分布式操作系統(tǒng)
分布式操作系統(tǒng):負責管理分布式處理系統(tǒng)資源和控制分布式程序運行。它和集中式操作系統(tǒng)的區(qū)別在于資源管理、進程通信和系統(tǒng)結構等方面。

2)分布式文件系統(tǒng)


分布式文件系統(tǒng)具有執(zhí)行遠程文件存取的能力,并以透明方式對分布在網(wǎng)絡上的文件進行管理和存取。

3)分布式程序設計和編譯解釋系統(tǒng)
分布式程序設計語言用于編寫運行于分布式計算機系統(tǒng)上的分布式程序。一個分布式程序由若干個可以獨立執(zhí)行的程序模塊組成,它們分布于一個分布式處理系統(tǒng)的多臺計算機上被同時執(zhí)行。它與集中式的程序設計語言相比有三個特點:分布性、通信性和穩(wěn)健性。

分層應用程序可以按層數(shù)進行劃分,信息可以從數(shù)據(jù)層(通常存儲在數(shù)據(jù)庫)傳送到表現(xiàn)層(顯示在客戶端上)。通常每層相對于其他層來說都運行在不同的系統(tǒng)中,或者在同一系統(tǒng)中的不同進程空間里。分層好處:減小整個應用程序的復雜性;使應用程序能夠更好的擴展,跟得上企業(yè)發(fā)展的需要。

兩層應用程序: 典型的結構,一個客戶端的用戶PC機(前端);一個包含數(shù)據(jù)庫的網(wǎng)絡服務器(后端)。邏輯上根據(jù)兩者的物理位置劃分。通??蛻舳税蟛糠謽I(yè)務邏輯,隨著數(shù)據(jù)庫及存儲過程的發(fā)展,SQL語言允許業(yè)務邏輯在數(shù)據(jù)庫服務器中存儲并執(zhí)行。

三層應用程序:目前最常用的是三層應用程序結構,包含一個用戶服務層(表現(xiàn)層),一個業(yè)務服務層和一個數(shù)據(jù)服務層。業(yè)務邏輯層從用戶界面和數(shù)據(jù)源中分離出來。 由于兩層應用程序即客戶端/服務器端結構的功能限制,分布式應用程序通常分為三層或者更多層。每層的組件都執(zhí)行一個特定類型的處理。

3)分布式數(shù)據(jù)庫
之我見:分布式數(shù)據(jù)庫,由分布在不同地方(地理位置上的分布)的多個數(shù)據(jù)庫(稱為站點)連接(基于計算機網(wǎng)絡來連接)而成。利用分布式DBMS對各個站點統(tǒng)一管理,各個站點邏輯上統(tǒng)一起來?;跀?shù)據(jù)分布的透明性,仿佛在管理單個站點上的數(shù)據(jù)。其優(yōu)點在于:容錯,提高訪問速度。

wiki官方解釋: 分布式數(shù)據(jù)庫是用計算機網(wǎng)絡將物理上分散的多個數(shù)據(jù)庫單元連接起來組成的一個邏輯上統(tǒng)一的數(shù)據(jù)庫。每個被連接起來的數(shù)據(jù)庫單元稱為站點或結點。分布式數(shù)據(jù)庫有一個統(tǒng)一的數(shù)據(jù)庫管理系統(tǒng)來進行管理,稱為分布式數(shù)據(jù)庫管理系統(tǒng)。

分布式數(shù)據(jù)庫的基本特點包括:物理分布性、邏輯整體性和站點自治性。從這三個基本特點還可以導出的其它特點有:數(shù)據(jù)分布透明性、集中與自治相結合的控制機制、適當?shù)臄?shù)據(jù)冗余度和事務管理的分布性。分布式數(shù)據(jù)庫按照各站點中數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)模型的異同分為異構型分布式數(shù)據(jù)庫和同構型分布式數(shù)據(jù)庫,按照控制系統(tǒng)的類型分為全局控制集中性、全局控制分散型和全局控制可變型

2.Redis怎么用的?

3.緩存中存什么數(shù)據(jù)?

4.如何保證數(shù)據(jù)庫和緩存的一致性?

?

我們日常開發(fā)中,對于緩存用的最多的場景就像下圖一樣,可能僅僅是對數(shù)據(jù)進行緩存,減輕數(shù)據(jù)庫壓力,縮短接口響應時間。

這種方案在不需要考慮高并發(fā)得去寫緩存,高并發(fā)得讀寫緩存時,是不會有問題,但是如果是在高并發(fā)場景下,要保證緩存和數(shù)據(jù)庫的一致性,至少需要解決以下問題:

高并發(fā)寫時的數(shù)據(jù)不一致問題

高并發(fā)讀寫時,請求執(zhí)行各步驟的順序是不可控的。假設此時有一個請求A,B都在在執(zhí)行寫流程,請求A是需要將某個數(shù)據(jù)改成1,請求B是需要將某個數(shù)據(jù)改為2,執(zhí)行操作如下時就會導致數(shù)據(jù)不一致的問題:

1.請求A執(zhí)行操作1.1刪除緩存。

2.請求A執(zhí)行操作1.2更新數(shù)據(jù)庫,將值改為1。

3.請求B執(zhí)行操作1.1刪除緩存。

4.請求B執(zhí)行操作1.2更新數(shù)據(jù)庫,將值改為2

5.假設說請求B所在服務器網(wǎng)絡延遲比較低,請求B先更新緩存,此時緩存中的key對應的value是2。

6.請求A更新緩存,將緩存中B更新的數(shù)據(jù)進行覆蓋,將key對應的值改為1。

此時數(shù)據(jù)庫中是B修改后的數(shù)據(jù),值為2,而緩存中的數(shù)據(jù)是1,這樣在緩存過期錢,用戶讀到的都是臟數(shù)據(jù),與數(shù)據(jù)庫不一致。

高并發(fā)讀寫時的數(shù)據(jù)不一致的問題

高并發(fā)讀寫時,請求執(zhí)行各步驟的順序是不可控的。假設此時有一個請求A在執(zhí)行寫流程,將原值由1改成2,請求B執(zhí)行讀流程,執(zhí)行操作如下時就會導致數(shù)據(jù)不一致的問題:

1.寫請求A執(zhí)行1.1操作刪除緩存key,value是原值1。

2.讀請求B執(zhí)行2.1操作發(fā)現(xiàn)緩存中沒有數(shù)據(jù),就去執(zhí)行2.2操作讀數(shù)據(jù)庫,讀到舊數(shù)據(jù),值為1。

3.寫請求A執(zhí)行1.2操作更新數(shù)據(jù)庫,將數(shù)據(jù)由1改為2。

4.寫請求A執(zhí)行1.3操作更新緩存,此時緩存中的數(shù)據(jù)key對應的value是2。

5.讀請求B執(zhí)行2.3操作更新緩存,將之前讀到的舊數(shù)據(jù)1設置到緩存中,此時緩存中的數(shù)據(jù)key對應的value是1。

所以如果說讀請求B所在服務器網(wǎng)絡延遲比較高,去執(zhí)行2.3操作比寫請求A晚,就會導致寫請求A更新完緩存后,讀請求B使用之前讀到的舊數(shù)據(jù)去更新緩存,此時緩存中數(shù)據(jù)就與數(shù)據(jù)庫中的不一致。

解決方案

保證數(shù)據(jù)一致性,網(wǎng)上有很多種方案,例如:

1.先刪除緩存,再更新數(shù)據(jù)庫。

2.先更新數(shù)據(jù)庫,再刪除緩存。

3.先刪除緩存,再更新數(shù)據(jù)庫,然后異步延遲一段時間再去刪一次緩存。

5.什么時候需要用到這些nosql或者ES?

6.說下什么是反向代理?

?

反向代理是指服務器根據(jù)客戶端的請求,從其關系的一組或多組后端服務器(如Web服務器)上獲取資源,然后再將這些資源返回給客戶端,客戶端只會得知反向代理的IP地址,而不知道在代理服務器后面的服務器簇的存在。

兩者區(qū)別:

1、用途差異

正向代理的典型用途是為在防火墻內的局域網(wǎng)客戶端提供訪問Internet的途徑。正向代理還可以使用緩沖特性減少網(wǎng)絡使用率;

反向代理的典型用途是將防火墻后面的服務器提供給Internet用戶訪問。反向代理還可以為后端的多臺服務器提供負載平衡,或為后端較慢的服務器提供緩沖服務。

2、安全差異

正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身,因此必須采取安全措施以確保僅為經(jīng)過授權的客戶端提供服務;反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理。

7.Linux中怎么查看文件的末尾幾行?(tail命令)

8.如果linux負載過高,如何查看linux運行情況?

9.如果linux負載過高,怎么定位哪個進程的哪一行代碼出問題了?

10.你的項目在linux中是如何部署的?

11.mysql一條sql非常慢,如何進行分析?(explain)

12.mysql什么時候分庫分表?

13.ArrayList和LinkedList的區(qū)別?

14.CAS說下?

15.泛型說下?泛型的好處?

16.exception和error的區(qū)別?

?

1.異常:這種情況下的異常,可以通過完善任務重試機制,當執(zhí)行異常時,保存當前任務信息加入重試隊列。重試的策略根據(jù)業(yè)務需要決定,當達到重試上限依然無法成功,記錄任務執(zhí)行失敗,同時發(fā)出告警。

2.日志:類比消息中間件,處在不同線程之間的同一任務,簡單高效一點的做法可能是用traceId/requestId串聯(lián)。有些日志系統(tǒng)本身支持MDC/NDC功能,可以串聯(lián)相關聯(lián)的日志。

?

  • Throwable:它是異常處理機制的基本組成類型,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch)。
  • Exception 和 Error 都是繼承了 Throwable 類。

Exception 和 Error 體現(xiàn)了 Java 平臺設設計者對不同異常情況的分類。

  • Error:系統(tǒng)錯誤,虛擬機出錯,我們處理不了,也不需要我們來處理。比如OutOfMeoryError。
  • Exception:可以捕獲的異常,且作出處理。也就是要么捕獲異常并作出處理,要么繼續(xù)拋出異常。

Exception又分為檢查型異常和非檢查型異常

  • 檢查型異常:在源代碼里必須顯式地進行捕獲處理,這是編譯期檢查的一部分。如FileNotFoundException客戶端需要知道是文件沒有找到的問題,客戶端可以通過其它方法來解決這個問題如更換其它路徑等。
  • 非檢查型異常:就是所謂的運行時異常,類似 NullPointerException,通常是可以編碼避免的邏輯錯誤,具體根據(jù)需要來判斷是否需要捕獲,并不會在編譯期強制要求。

?

17.什么是類型擦除?

18.什么時候發(fā)生棧溢出?舉個例子?

19.如何設計秒殺系統(tǒng)?

20.反問為什么面試時間這么短?(說如果他覺得我能進二面就沒有必要繼續(xù)面了)

技術棧?

面試表現(xiàn)?

?

【二面】

二面面試官可能能看到一面的評分吧,可能對我期望比較大,讓他老人家失望了。。。

1.項目的難點?( ? 我說的和4G模塊通信,然后一頓BIO/NIO/AIO懟上來,答不上來,只能大眼瞪小眼,自己給自己挖坑。。)

2.使用Redis做了什么?

3.分布式鎖怎么做的?

4.分布式鎖,如果向主機加鎖,但是還沒同步到從機,此時主機宕機,重新選取了一個從機,那么此時是不是就會重新獲取到鎖(回答的redlock算法)

5.mysql的復制方式?(只回答出來異步復制?)問還有沒有其他的,回答:不知道。。。

6.分布式事務?二階段提交、三階段提交、TCC?區(qū)別?優(yōu)勢???( 自閉+1)

7.如果是2pc,準備階段成功之后,但是提交的時候一方?jīng)]有提交成功,會怎么樣?會不會回滾?(蒙的會回滾, 自閉+1)

8.我覺得你很多東西掌握的也不扎實呀??????(可能一面面試官對我評價太高了,讓他失望了,自閉+1)

9.你覺得數(shù)據(jù)結構和算法怎么樣?做個簡單算法題吧。

簡單的判斷鏈表是不是有環(huán)?使用快慢指針做的,并且通過了,問還有沒有更優(yōu)的?他說可以不考慮空間復雜度,我說可以用HashSet??

我快慢指針的時間復雜度是O(n),空間復雜度O(1),如果使用HashSet之后,不是時間復雜度還是O(n),空間也是O(N)???難道是考慮如果環(huán)比較大的時候,快慢指針效率低??

10.說我簡歷上掌握的知識面挺多的,問平時怎么學習的?

沒有反問環(huán)節(jié),以為涼了。。

?

【HR面】

HR面,一共30分鐘整。沒有自我介紹,沒有反問。

1.上來就是為什么要選杭州?為什么不去北上廣?

2.目前都投了哪些公司?

3.目前都拿到了什么offer?(hr難道是認為我太菜了,然后張大嘴20s。。。)

4.說下超出你預期的事情?

5.經(jīng)歷的比較有成就感的事情?

6.項目中遇到的最有挑戰(zhàn)性的問題?怎么解決的?然后一頓問(大概10分鐘)

7.和別人溝通時遇到的矛盾,怎么溝通的?怎么解決的?

總結

以上是生活随笔為你收集整理的【毕业求职季】-听说你想去大厂看学姐,带你看看网易java面经的全部內容,希望文章能夠幫你解決所遇到的問題。

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