版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2026年軟件開發(fā)崗面試題集一、編程基礎(chǔ)題(共5題,每題10分,總分50分)題目1(10分)請(qǐng)用Python語言實(shí)現(xiàn)一個(gè)函數(shù),該函數(shù)接收一個(gè)字符串參數(shù),返回該字符串中所有唯一字符的列表(不區(qū)分大小寫)。例如,輸入"HelloWorld",輸出應(yīng)為['H','e','W','r','d']。題目2(10分)用Java實(shí)現(xiàn)一個(gè)方法,該方法接收一個(gè)整數(shù)數(shù)組,返回一個(gè)新數(shù)組,其中包含原數(shù)組中所有奇數(shù)元素,順序保持不變。例如,輸入[1,2,3,4,5],輸出應(yīng)為[1,3,5]。題目3(10分)請(qǐng)用C++編寫一個(gè)函數(shù),實(shí)現(xiàn)快速排序算法。輸入一個(gè)整數(shù)數(shù)組,原地排序該數(shù)組。要求:寫明時(shí)間復(fù)雜度和空間復(fù)雜度分析。題目4(10分)用JavaScript實(shí)現(xiàn)一個(gè)Promise-based的異步函數(shù),該函數(shù)模擬從API獲取數(shù)據(jù)(使用setTimeout模擬網(wǎng)絡(luò)延遲),處理數(shù)據(jù)后返回結(jié)果。要求處理過程中可能拋出錯(cuò)誤,并捕獲處理。題目5(10分)請(qǐng)解釋什么是RESTfulAPI,并說明在設(shè)計(jì)中如何實(shí)現(xiàn)資源(Resource)的表示(Representation)。二、系統(tǒng)設(shè)計(jì)題(共3題,每題20分,總分60分)題目6(20分)設(shè)計(jì)一個(gè)支持百萬級(jí)用戶的短鏈接系統(tǒng)。要求:1.描述系統(tǒng)架構(gòu)2.說明URL生成算法3.如何保證高可用性4.如何處理高并發(fā)請(qǐng)求題目7(20分)設(shè)計(jì)一個(gè)微博系統(tǒng)的基礎(chǔ)架構(gòu)。要求:1.用戶關(guān)注/取關(guān)功能2.信息流的實(shí)現(xiàn)方式3.緩存策略設(shè)計(jì)4.數(shù)據(jù)庫選型及分表方案題目8(20分)設(shè)計(jì)一個(gè)高并發(fā)的秒殺系統(tǒng)。要求:1.系統(tǒng)架構(gòu)圖2.如何防止超賣3.如何處理數(shù)據(jù)庫壓力4.負(fù)載均衡策略三、數(shù)據(jù)庫與SQL題(共4題,每題15分,總分60分)題目9(15分)解釋MySQL中的索引類型(B-Tree索引、哈希索引、全文索引等),并說明在實(shí)際開發(fā)中選擇索引類型的考慮因素。題目10(15分)寫SQL查詢:查詢2025年每個(gè)部門的平均工資,只顯示平均工資大于5000的部門。題目11(15分)解釋數(shù)據(jù)庫事務(wù)的ACID特性,并說明在實(shí)際應(yīng)用中如何保證事務(wù)的一致性。題目12(15分)設(shè)計(jì)一張用戶表(User)和訂單表(Order),說明外鍵約束的作用,并寫SQL實(shí)現(xiàn):查詢每個(gè)用戶的訂單數(shù)量。四、算法與數(shù)據(jù)結(jié)構(gòu)題(共4題,每題15分,總分60分)題目13(15分)給定一個(gè)整數(shù)數(shù)組,找出三個(gè)數(shù),使這三個(gè)數(shù)的和最接近給定的數(shù)target。要求:時(shí)間復(fù)雜度O(n2)。題目14(15分)解釋什么是動(dòng)態(tài)規(guī)劃,并用動(dòng)態(tài)規(guī)劃解決背包問題(0/1背包)。題目15(15分)實(shí)現(xiàn)二叉樹的深度優(yōu)先遍歷(前序、中序、后序)和非遞歸版本。題目16(15分)設(shè)計(jì)一個(gè)算法,檢測(cè)一個(gè)字符串是否是另一個(gè)字符串的子序列。例如,"abc"是"ahbgdc"的子序列。五、項(xiàng)目經(jīng)驗(yàn)與架構(gòu)設(shè)計(jì)題(共3題,每題20分,總分60分)題目17(20分)描述你參與過的一個(gè)大型項(xiàng)目,說明你在其中承擔(dān)的角色和主要工作,遇到的挑戰(zhàn)以及解決方案。題目18(20分)解釋微服務(wù)架構(gòu)的優(yōu)勢(shì)和挑戰(zhàn),說明在什么場(chǎng)景下適合采用微服務(wù)。題目19(20分)設(shè)計(jì)一個(gè)消息隊(duì)列系統(tǒng)(如Kafka或RabbitMQ),說明:1.如何保證消息的可靠性2.如何處理消息重復(fù)消費(fèi)問題3.如何進(jìn)行消息的順序保證答案與解析一、編程基礎(chǔ)題題目1答案(Python)pythondefunique_chars(s):s_lower=s.lower()returnlist(set(s_lower)-set([cforcins_lowerifs_lower.count(c)>1]))解析:首先將字符串轉(zhuǎn)為小寫統(tǒng)一處理,然后使用集合去重,最后排除出現(xiàn)超過一次的字符。時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)。題目2答案(Java)javaimportjava.util.ArrayList;importjava.util.List;publicList<Integer>getOdds(int[]arr){List<Integer>result=newArrayList<>();for(intnum:arr){if(num%2!=0){result.add(num);}}returnresult;}解析:簡(jiǎn)單遍歷數(shù)組,判斷奇數(shù)后添加到結(jié)果列表。時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)。題目3答案(C++)cppinclude<vector>usingnamespacestd;voidquickSort(vector<int>&arr,intleft,intright){if(left>=right)return;intpivot=arr[left];inti=left,j=right;while(i<j){while(i<j&&arr[j]>=pivot)j--;if(i<j)arr[i++]=arr[j];while(i<j&&arr[i]<=pivot)i++;if(i<j)arr[j--]=arr[i];}arr[i]=pivot;quickSort(arr,left,i-1);quickSort(arr,i+1,right);}解析:快速排序時(shí)間復(fù)雜度平均O(nlogn),最壞O(n2);空間復(fù)雜度O(logn)(遞歸棧)。選擇基準(zhǔn)值pivot是關(guān)鍵。題目4答案(JavaScript)javascriptfunctionfetchData(url){returnnewPromise((resolve,reject)=>{setTimeout(()=>{//模擬API調(diào)用if(Math.random()>0.1){//90%概率成功resolve({data:"結(jié)果",url:url});}else{reject(newError("網(wǎng)絡(luò)錯(cuò)誤"));}},100);}).then(response=>{console.log("處理數(shù)據(jù)");returnresponse.data;}).catch(error=>{console.error("錯(cuò)誤處理",error);return"默認(rèn)值";});}解析:Promise結(jié)構(gòu)清晰,鏈?zhǔn)秸{(diào)用處理成功和失敗場(chǎng)景。適合處理異步操作。題目5答案RESTfulAPI基于REST(RepresentationalStateTransfer)架構(gòu)風(fēng)格,核心特點(diǎn):1.資源(Resource):系統(tǒng)中的任何可識(shí)別實(shí)體,用URI表示2.資源表示(Representation):資源的數(shù)據(jù)表現(xiàn)形式,如JSON/XML3.行為(Action):通過HTTP方法(GET/POST/PUT/DELETE)操作資源4.自治性:每個(gè)資源獨(dú)立維護(hù)狀態(tài)設(shè)計(jì)時(shí)需遵循:統(tǒng)一接口、無狀態(tài)、可緩存、分層系統(tǒng)等原則。二、系統(tǒng)設(shè)計(jì)題題目6答案(短鏈接系統(tǒng))1.架構(gòu):-輸入層:負(fù)載均衡器分發(fā)請(qǐng)求-業(yè)務(wù)層:URL轉(zhuǎn)換服務(wù)(內(nèi)存緩存+Redis)-數(shù)據(jù)庫:主從復(fù)制+讀寫分離的MongoDB-CDN:靜態(tài)資源緩存2.URL算法:-Base62編碼:6位62進(jìn)制數(shù)字(如aVf8)-62^6=56.8億容量,前綴可追加字母3.高可用性:-微服務(wù)部署(Kubernetes)-限流熔斷(Sentinel)-健康檢查(Prometheus)4.高并發(fā)處理:-異步化處理(消息隊(duì)列)-批量操作優(yōu)化-分布式鎖(Redis)題目7答案(微博系統(tǒng))1.架構(gòu):-用戶服務(wù):OAuth2認(rèn)證-關(guān)注服務(wù):Redis存儲(chǔ)關(guān)注關(guān)系-推流服務(wù):消息隊(duì)列+流處理-數(shù)據(jù)庫:PostgreSQL(分表)2.關(guān)注功能:sql--關(guān)注表CREATETABLEfollows(follower_idBIGINT,followee_idBIGINT,created_atTIMESTAMPDEFAULTNOW());3.信息流:-近期關(guān)注者動(dòng)態(tài)(實(shí)時(shí))-熱門推薦(離線計(jì)算)-緩存策略:Redis+本地緩存4.數(shù)據(jù)庫設(shè)計(jì):-用戶表:分表(按用戶ID哈希)-文檔表:全文索引+壓縮存儲(chǔ)題目8答案(秒殺系統(tǒng))1.架構(gòu):mermaidgraphTD用戶-->負(fù)載均衡-->訂單服務(wù)訂單服務(wù)-->Redis(分布式鎖)Redis-->商品服務(wù)商品服務(wù)-->MySQL(事務(wù))2.防止超賣:-分布式鎖(RedisSETNX)-行鎖(MySQLFORUPDATE)-庫存預(yù)扣減3.數(shù)據(jù)庫壓力:-分庫分表-熱點(diǎn)數(shù)據(jù)預(yù)加載數(shù)據(jù)庫-異步化扣減庫存4.負(fù)載均衡:-動(dòng)態(tài)權(quán)重分配-基于響應(yīng)時(shí)間切換-服務(wù)熔斷三、數(shù)據(jù)庫與SQL題題目9答案MySQL索引類型:1.B-Tree索引:最常用,適用于范圍查詢和排序-時(shí)間復(fù)雜度:O(logn)-應(yīng)用:WHEREpriceBETWEEN100AND2002.哈希索引:精確匹配,不支持范圍查詢-時(shí)間復(fù)雜度:O(1)-應(yīng)用:WHEREid=1003.全文索引:文本內(nèi)容搜索-應(yīng)用:WHEREcontentLIKE'%關(guān)鍵詞'選擇原則:-查詢類型:精確查詢用哈希,范圍查詢用B-Tree-性能考慮:索引越大查詢?cè)娇?,但更新?存儲(chǔ)成本:全文索引最消耗資源題目10答案sqlSELECTdepartment_id,AVG(salary)ASavg_salaryFROMemployeesWHEREYEAR(hire_date)=2025GROUPBYdepartment_idHAVINGAVG(salary)>5000;題目11答案ACID特性:1.原子性Atomicity:事務(wù)不可分割,成功或全部失敗-實(shí)現(xiàn)方式:數(shù)據(jù)庫事務(wù)隔離級(jí)別2.一致性Consistency:事務(wù)執(zhí)行保持?jǐn)?shù)據(jù)一致性-實(shí)現(xiàn)方式:觸發(fā)器+約束3.隔離性Isolation:并發(fā)事務(wù)互不干擾-級(jí)別:READCOMMITTED/SERIALIZABLE4.持久性Durability:提交后永久保存-實(shí)現(xiàn)方式:WAL日志題目12答案sql--表設(shè)計(jì)CREATETABLEUser(idBIGINTPRIMARYKEY,nameVARCHAR(50));CREATETABLEOrder(idBIGINTPRIMARYKEY,user_idBIGINT,amountDECIMAL(10,2),FOREIGNKEY(user_id)REFERENCESUser(id));--查詢SELECTu.id,,COUNT(o.id)ASorder_countFROMUseruLEFTJOINOrderoONu.id=o.user_idGROUPBYu.id,;四、算法與數(shù)據(jù)結(jié)構(gòu)題題目13答案(3數(shù)之和)pythondefthreeSumClosest(nums,target):nums.sort()n=len(nums)closest=float('inf')foriinrange(n-2):left,right=i+1,n-1whileleft<right:total=nums[i]+nums[left]+nums[right]ifabs(total-target)<abs(closest-target):closest=totaliftotal<target:left+=1else:right-=1returnclosest題目14答案(背包問題)pythondefknapsack(W,wt,val,n):dp=[[0forxinrange(W+1)]forxinrange(n+1)]foriinrange(1,n+1):forwinrange(1,W+1):ifwt[i-1]<=w:dp[i][w]=max(val[i-1]+dp[i-1][w-wt[i-1]],dp[i-1][w])else:dp[i][w]=dp[i-1][w]returndp[n][W]示例W=50wt=[10,20,30]val=[60,100,120]n=len(wt)print(knapsack(W,wt,val,n))#220題目15答案(二叉樹遍歷)python定義二叉樹節(jié)點(diǎn)classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=right遞歸遍歷defpreorderTraversal(root):ifnotroot:return[]return[root.val]+preorderTraversal(root.left)+preorderTraversal(root.right)definorderTraversal(root):ifnotroot:return[]returninorderTraversal(root.left)+[root.val]+inorderTraversal(root.right)defpostorderTraversal(root):ifnotroot:return[]returnpostorderTraversal(root.left)+postorderTraversal(root.right)非遞歸版本defpreorderIterative(root):ifnotroot:return[]stack,result=[root],[]whilestack:node=stack.pop()result.append(node.val)ifnode.right:stack.append(node.right)ifnode.left:stack.append(node.left)returnresult題目16答案(子序列檢測(cè))pythondefisSubsequence(s,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站油庫員工三級(jí)安全教育考核題目(附答案)
- 2025年注安道路運(yùn)輸安全實(shí)務(wù)真題及答案解析
- 醫(yī)院感染知識(shí)培訓(xùn)試題2026(附答案)
- 2025年交通安全教育培訓(xùn)試題及答案
- 建設(shè)工程施工合同糾紛要素式起訴狀模板可直接提交法院
- 水產(chǎn)養(yǎng)殖2026年可持續(xù)發(fā)展
- 2026年數(shù)據(jù)隱私保護(hù)指南
- 消費(fèi)者洞察2026年精準(zhǔn)定位
- 藥品供應(yīng)鏈2026年優(yōu)化方案
- 房產(chǎn)營(yíng)銷經(jīng)理年終總結(jié)(3篇)
- 地鐵機(jī)電(風(fēng)水電)設(shè)備維保操作手冊(cè)
- 鄉(xiāng)鎮(zhèn)污泥處理應(yīng)急預(yù)案
- 海上導(dǎo)管架安裝監(jiān)理細(xì)則
- JBT 12530.3-2015 塑料焊縫無損檢測(cè)方法 第3部分:射線檢測(cè)
- 辦公家具投標(biāo)方案(技術(shù)方案)
- 小班數(shù)學(xué)《5以內(nèi)的點(diǎn)數(shù)》課件
- GB/T 10118-2023高純鎵
- 預(yù)制箱梁架設(shè)安全技術(shù)交底
- PDCA提高臥床患者踝泵運(yùn)動(dòng)鍛煉的正確率
- YB/T 036.10-1992冶金設(shè)備制造通用技術(shù)條件鍛鋼件超聲波探傷方法
- GB/T 29890-2013糧油儲(chǔ)藏技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論