9.30 14:30 一面
實習:
- 實習做了什么
- 介紹實習的專案
資料結構:
- 有哪些資料結構
鏈表和陣列的區別- 跳表的原理和插入程序
- 場景題:有很多資料,各自具有依賴關系,采用什么資料結構存盤
計網:
- 三次握手和四次揮手的程序
設計模式:
- 工廠模式的設計思路,優缺點
JVM:
- 四種參考
- 場景題:如果是一個服務器用于存盤資料,然后里面有一些資料是熱點陣列,需要快取,用哪種參考
Java:
- 面向物件和面向程序的區別
- 介面和抽象類的區別
- 多型的分類
- 例外體系
- finally 的作用
- 如果在 finally 塊中有 return 陳述句,發生例外會執行嗎?不發生呢?
- ArrayList 的擴容程序
- 非執行緒安全的集合怎么改為執行緒安全
演算法:
LC 21 合并有序鏈表
- 分析最差最好時間復雜度
10.8 17:30 二面
實習:
- 實習做了什么
- 介紹實習的專案
專案:
- 介紹專案
- 怎么實作 IOC 的
- 怎么管理 Bean 的
- 一個請求進入,是怎么運作的
- Shiro 怎么集成的
- 怎么解決回圈依賴的情況
- 做了這個
專案的識訓
Redis:
- Redis 的資料結構有哪些?使用場景?(尬住了,只知道 sorted set 的場景)
- 場景題:記錄活躍用戶
Spring Cloud:
- 核心組件有哪些以及對應的功能
Netty:
- Netty 的執行緒模型
演算法:
LC 515 在每個樹行中找最大值
在上面題目基礎上,修改條件(奇數最大,偶數最小)(也是尷尬現場,定義了 flag 變數,忘記更新了)
public List<Integer> largestValues(TreeNode root){
List<Integer> res = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();
if (root != null){
queue.offer(root);
}
boolean flag = false;
while (!queue.isEmpty()){
int cur = 0;
if (flag){
int cur_size = queue.size();
cur = Integer.MIN_VALUE;
for (int i = 0;i < cur_size;i++){
TreeNode x = queue.poll();
cur = Math.max(cur,x.value);
if (x.left != null){
queue.offer(x.left);
}
if (x.right!= null){
queue.offer(x.right);
}
}
}else {
int cur_size = queue.size();
cur = Integer.MAX_VALUE;
for (int i = 0;i < cur_size;i++){
TreeNode x = queue.poll();
cur = Math.min(cur,x.value);
if (x.left != null){
queue.offer(x.left);
}
if (x.right!= null){
queue.offer(x.right);
}
}
}
res.add(cur);
flag = !flag;
}
return res;
}
10.20 17:30 三面
實習:
- 介紹實習的專案
- 實習做了什么
- 實習遇到的困難,怎么解決的
- 實習的識訓
演算法:
劍指42 連續子陣列最大和
- 動態規劃
- 二分遞回
在上面題目基礎上,修改條件(輸出子陣列,不單單是最大值)
public static void main(String[] args) {
int[] nums = {0,2,3,4,-2,-3,9,11};
System.out.println(maxSubArr(nums));
}
public static List<Integer> maxSubArr(int[] nums){
if (nums == null || nums.length == 0){
return new ArrayList<>();
}
int[][] dp = new int[nums.length][2];
for (int i = 0;i < nums.length;i++){
dp[i][1] = i;
}
dp[0][0] = nums[0];
int max = dp[0][0];
int start = 0;
int end = 0;
for (int i = 1;i < dp.length;i++){
if (dp[i - 1][0] > 0){
dp[i][0] = dp[i - 1][0] + nums[i];
dp[i][1] = dp[i - 1][1];
}else {
dp[i][0] = nums[i];
dp[i][1] = i;
}
max = Math.max(dp[i][0],max);
if (max == dp[i][0]){
start = dp[i][1];
end = i;
}
}
List<Integer> res = new ArrayList<>();
for (int i = start;i <= end;i++){
res.add(nums[i]);
}
return res;
}
閑聊:
- 對于博客的想法
- 對于新技術的想法
- 如何學習一個新的技術
- 未來規劃
- 怎么協調作業與學習
10.25 20:00 HR 面
專案做了什么,有什么識訓- 對于前面面試官的看法
- 對于
BIGO 的一個了解 - 對于 YY 和 BIGO 的一個區別了解
- 實習做了什么,有什么識訓(這個時候才發現 BIGO 投遞簡歷的時候沒有加上實習的內容,我就說怎么面試官聽到我說實習的時候問的不是具體的東西)
- 對于企業更加看重的是什么
- 對于薪資的一個要求
- 手上有其他 offer 或者在流程中的嗎
10.28 下午收到意向書
面試手冊:
最近頻繁面試,把面試官們問我的題目都匯總整理成了一份PDF的檔案,內容覆寫了Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等,如下圖:






以上資料已經打包好上傳到百度云了,大家自行下載即可:
PDF檔案下載:
鏈接: https://pan.baidu.com/s/1V7bVck1Q6jxjQaoa_deoYg
提取碼: 77f5
百度云鏈接不穩定,隨時可能失效~
如果百度云鏈接失效了的話,請關注博主的微信公眾號:Java團長,發送“ 檔案 ”也可獲取哈~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342043.html
標籤:其他
下一篇:9. spark源代碼分析(基于yarn cluster模式)- Task執行,Reduce端讀取shuffle資料檔案
