版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2026年科技公司面試專業(yè)筆試題一、編程語言基礎(Java)共3題,每題10分,總分30分1.題目:javapublicclassTestLoop{publicstaticvoidmain(String[]args){intsum=0;for(inti=1;i<=10;i++){if(i%2==0){continue;}sum+=i;}System.out.println(sum);}}問題:-輸出上述代碼的運行結果。-如果將`continue`語句改為`break`,輸出結果會怎樣?請解釋原因。2.題目:javapublicclassStringTest{publicstaticvoidmain(String[]args){Strings1="hello";Strings2=newString("hello");Strings3="hello";System.out.println(s1==s2);//輸出什么?System.out.println(s1==s3);//輸出什么?System.out.println(s1.equals(s2));//輸出什么?}}問題:-解釋`==`和`equals()`的區(qū)別。-如果`String`改為`StringBuilder`,上述代碼的輸出會變化嗎?為什么?3.題目:javapublicclassMultiThreadTest{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt1=newThread(()->{for(inti=0;i<5;i++){System.out.println("Thread1:"+i);}});Threadt2=newThread(()->{for(inti=0;i<5;i++){System.out.println("Thread2:"+i);}});t1.start();t2.start();t1.join();t2.join();}}問題:-上述代碼中`join()`的作用是什么?如果不加`join()`,輸出順序會有什么不同?-如何避免多線程中的數據競爭問題?二、數據結構與算法共4題,每題12分,總分48分1.題目:-問題:給定一個無重復元素的數組`nums`,返回所有可能的子集(冪集)。示例輸入:`nums=[1,2,3]`示例輸出:`[[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]]`2.題目:-問題:實現(xiàn)一個`LRU緩存`(LeastRecentlyUsed),要求支持`get`和`put`操作。示例輸入:-`LRUCache(2)`-`put(1,1)`-`put(2,2)`-`get(1)`→返回`1`-`put(3,3)`→去除鍵`2`-`get(2)`→返回`-1`(未找到)3.題目:-問題:給定一個包含`0`和`1`的二維網格,找出其中最大的正方形,并返回其面積。示例輸入:10100101111111110010示例輸出:`4`(最大正方形邊長為2)4.題目:-問題:實現(xiàn)快速排序算法,并分析其時間復雜度。示例輸入:`[3,10,5,1,2]`示例輸出:`[1,2,3,5,10]`三、數據庫與SQL共2題,每題15分,總分30分1.題目:-問題:給定以下表結構,編寫SQL查詢:sql--表1:orders(訂單表)+-+-+-+-+|列名|類型|是否主鍵|備注|+-+-+-+-+|order_id|int|是|訂單ID||customer_id|int|否|客戶ID||order_date|date|否|訂單日期||total_amount|decimal|否|訂單金額|+-+-+-+-+--表2:customers(客戶表)+++-+-+|列名|類型|是否主鍵|備注|+++-+-+|customer_id|int|是|客戶ID||customer_name|varchar|否|客戶名||register_date|date|否|注冊日期|+++-+-+查詢要求:-查詢2023年訂單金額總和超過10000的客戶名稱和訂單金額。-結果按訂單金額降序排列。2.題目:-問題:-問題1:解釋`B+樹`在數據庫索引中的應用,為什么它比`B樹`更高效?-問題2:給定以下SQL語句,分析其執(zhí)行邏輯:sqlSELECTc.customer_name,COUNT(o.order_id)ASorder_countFROMcustomerscLEFTJOINordersoONc.customer_id=o.customer_idWHEREo.order_dateBETWEEN'2023-01-01'AND'2023-12-31'GROUPBYc.customer_nameORDERBYorder_countDESCLIMIT10;四、系統(tǒng)設計共2題,每題20分,總分40分1.題目:-問題:設計一個簡單的短鏈接系統(tǒng)(類似`tinyurl`),要求:-輸入長鏈接,輸出固定長度的短鏈接(如6位隨機字符)。-支持通過短鏈接查詢原始長鏈接。-說明系統(tǒng)架構、數據存儲方案、高并發(fā)處理方法。2.題目:-問題:設計一個高并發(fā)的微博點贊系統(tǒng),要求:-用戶可以給任意微博點贊(最多點100次)。-實時顯示微博的點贊數。-說明如何處理高并發(fā)場景(如秒殺、熱點微博),以及數據一致性問題。答案與解析一、編程語言基礎(Java)1.答案:-輸出結果:`25`(1+3+5+7+9=25)-如果改為`break`,代碼會提前終止循環(huán),輸出`0`。解析:-`continue`跳過當前循環(huán),`break`終止整個循環(huán)。2.答案:-`false`(`==`比較內存地址,`s1`和`s2`不同)-`true`(`equals()`比較字符串內容)解析:-`String`池化機制:常量字符串`"hello"`共享內存,`s1==s3`為`true`。-`StringBuilder`無池化,`==`比較內存地址,`equals()`比較內容。3.答案:-`join()`確保`t1`和`t2`按順序執(zhí)行。-不加`join()`時,輸出可能交錯,如:Thread1:0Thread2:0Thread1:1Thread2:1...解析:-`join()`阻塞主線程,等待子線程結束。-數據競爭可通過`synchronized`或`Lock`解決。二、數據結構與算法1.答案:javapublicList<List<Integer>>subsets(int[]nums){List<List<Integer>>res=newArrayList<>();Arrays.sort(nums);//保證順序backtrack(nums,0,newArrayList<>(),res);returnres;}voidbacktrack(int[]nums,intstart,List<Integer>temp,List<List<Integer>>res){res.add(newArrayList<>(temp));for(inti=start;i<nums.length;i++){temp.add(nums[i]);backtrack(nums,i+1,temp,res);temp.remove(temp.size()-1);}}解析:-回溯法枚舉所有子集,排序確保順序一致。2.答案:javaclassLRUCache{intcapacity;Map<Integer,Integer>cache=newLinkedHashMap<>();publicLRUCache(intcapacity){this.capacity=capacity;}publicintget(intkey){if(!cache.containsKey(key))return-1;intvalue=cache.get(key);cache.remove(key);cache.put(key,value);//更新訪問順序returnvalue;}publicvoidput(intkey,intvalue){if(cache.containsKey(key)){cache.remove(key);}elseif(cache.size()==capacity){cache.remove(cache.keySet().iterator().next());//移除最久未使用}cache.put(key,value);}}解析:-`LinkedHashMap`保持插入順序,`get`和`put`時移動元素。3.答案:javapublicintmaximalSquare(char[][]matrix){if(matrix==null||matrix.length==0)return0;introws=matrix.length,cols=matrix[0].length;intmax=0;int[][]dp=newint[rows][cols];for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){if(matrix[i][j]=='1'){if(i==0||j==0){dp[i][j]=1;}else{dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;}max=Math.max(max,dp[i][j]);}}}returnmaxmax;}解析:-動態(tài)規(guī)劃:`dp[i][j]`為以`(i,j)`為右下角的最大正方形邊長。4.答案:javapublicvoidquickSort(int[]arr,intleft,intright){if(left<right){intpivot=partition(arr,left,right);quickSort(arr,left,pivot-1);quickSort(arr,pivot+1,right);}}intpartition(int[]arr,intleft,intright){intpivot=arr[right];inti=left-1;for(intj=left;j<right;j++){if(arr[j]<pivot){i++;swap(arr,i,j);}}swap(arr,i+1,right);returni+1;}解析:-時間復雜度:平均`O(nlogn)`,最壞`O(n^2)`。三、數據庫與SQL1.答案:sqlSELECTc.customer_name,o.total_amountFROMcustomerscINNERJOINordersoONc.customer_id=o.customer_idWHEREo.order_dateBETWEEN'2023-01-01'AND'2023-12-31'GROUPBYc.customer_nameHAVINGSUM(o.total_amount)>10000ORDERBYSUM(o.total_amount)DESC;解析:-`INNERJOIN`過濾無訂單客戶,`GROUPBY`按客戶分組,`HAVING`篩選金額。2.答案:-B+樹:-數據存儲在葉子節(jié)點,內部節(jié)點僅索引。比B樹更節(jié)省空間,磁盤IO更少。-SQL執(zhí)行邏輯:1.`LEFTJOIN`保留所有客戶,即使無訂單。2.`WHERE`過濾202
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生院員工體檢管理制度
- 衛(wèi)生室財務管理制度規(guī)定
- 衛(wèi)生室控煙工作制度
- 施工現(xiàn)場衛(wèi)生制度
- 衛(wèi)生院普法學法制度
- 休息室打掃衛(wèi)生制度
- 衛(wèi)生分區(qū)域管理制度
- 衛(wèi)生院三級管理制度
- 汽修廠衛(wèi)生責任管理制度
- 機房衛(wèi)生員管理制度
- 鄉(xiāng)鎮(zhèn)醫(yī)院器械管理辦法
- 關節(jié)脫位院前急救
- 2024年山東省濟南市中考化學試卷( 含答案)
- 建筑結構改造設計和加固技術綜合分析的開題報告
- 管理會計學 第10版 課件 第1、2章 管理會計概論、成本性態(tài)與變動成本法
- 喪葬費用補助申請的社保授權委托書
- 2024年度初會《經濟法基礎》高頻真題匯編(含答案)
- 課例研究報告
- 啤酒營銷促銷實戰(zhàn)技巧之經銷商管理技巧知識培訓
- 建筑工程各部門職能及各崗位職責201702
- 機柜端口對應表
評論
0/150
提交評論