2019秋招面經總結

2019.6.12 vivo提前批後臺(安卓方向)

面向對象的三大特徵

hashmap的底層實現

https和http的區別

網頁請求流程

插入排序

小白菜價20W

2019.7.6 中興提前批

JVM內存回收算法

寫單例

接口和抽象類的區別

設計模式

2019.7.9 字節跳動提前批

一面:

編程題:生產者消費者模式,n個排序數組求前k個數

項目中用到多線程的地方,商品詳情頁面

熔斷的概念

秒殺的業務邏輯

事務的ACID

組合索引,最左匹配原則

TCP三次握手和四次揮手

二面:

編程題:寫單例,鏈表反轉(兩個節點爲一個單位進行反轉)

破壞單例模式

數據庫索引,聚簇索引和輔助索引的區別,主鍵索引和聚簇索引的區別

索引底層爲什麼使用B+樹而不使用其它類型的排序樹,比如說B樹

主鍵自增的優缺點

數據庫中的數據在文件中是怎麼存儲的

get和post的區別,什麼是冪等?什麼是安全?

http報文結構

http和tcp的區別

https中用到的加密算法,爲什麼兩種結合使用,具體過程講一下

三面:

編程題:36進制加法

項目介紹

Redis底層原理,數據類型

url地址解析過程

TCP擁塞控制、慢開始、快重傳、滑動窗口

設計一個內存池,類比線程池和數據庫連接池

垃圾回收算法、垃圾收集器

進程通信的方式

自己的優勢和劣勢

抗壓能力

2019.7.15 字節跳動四面

算法題:給定一個只包含0~9的數組,然後再給定一個K值,對數組裏面的數字進行組合,輸出所有比K大的組合數中最小的一個。

nums = [4,1,4,2,7,8] K=448

輸出:712

操作系統的基本功能

cookie和session的區別

跨域問題,如何解決

多個線程能否監聽同一個TCP端口

2019.8.12 順豐科技第二輪技術面

1、URL解析過程

2、POST和GET請求的區別

2、多態的作用,怎麼實現

3、static關鍵字的作用

4、synchronized的原理

5、Java中的異常分類

6、進程和線程的區別

7、數組區間合併

2019.8.16 美團一面

1、服務端渲染和客戶端渲染的區別,爲什麼要使用服務端渲染,JSP瞭解嗎,工作機制是什麼?

2、Java內存區域

3、方法區的作用

4、堆內存的劃分,年輕代和老年代,分別使用的垃圾回收算法

5、JVM默認的垃圾回收算法

6、HTTP和HTTPS的區別,HTTPS使用的加密算法

7、通信雙方如何認證?如何避免證書被僞造?

8、Spring AOP

9、jdk動態代理和CGLIB動態代理的區別,其生效時期是什麼時候?

10、ES索引原理,Mysql索引原理,ES區間查詢怎麼實現?(跳錶)

11、一條長度爲l的線段,隨機在其上選2個點,將線段分爲3段,問這3個子段能組成一個三角形的概率是多少?

12、代碼題:給定已經按升序排列、由不同整數組成的數組 A,返回滿足 A[i] == i 的最小索引 i。如果不存在這樣的 i,返回 -1。

例子:輸入【-1,0,2,3,4】返回“2”

2019.8.17 騰訊測開一面

1、String、StringBuffer、StringBuilder的區別

2、數據庫事務的特點

3、數據庫中的鎖

4、TCP三次握手

5、前端了解嗎?Vue、JQuery、React的區別

6、冒泡排序

2019.8.18 猿輔導一面

項目介紹

SpringBoot 自動配置原理

SpringCloud中Eureka服務註冊中心和Zuul網關的原理

數據庫的隔離級別,如何實現可重複讀

數據庫的索引有哪些,介紹B+樹索引

Redis的線程模型,常用的數據結構

RabbitMQ的消息模型

編程題:leetcode695 島嶼的最大面積

編程題:一個棧中存放無序數字,使用額外空間棧對其進行排序

2019.8.20 美團二面

項目介紹

反向代理是什麼

synchronized底層原理,普通同步方法和靜態同步方法的區別

mysql的索引原理

數據庫中的樂觀鎖和悲觀鎖

數據庫中視圖的概念,視圖可以加快查詢嗎?

數據庫的事務特性,mysql的隔離級別

HashMap是線程安全的嗎?ConcurrentHashMap的底層實現原理,CAS是什麼?

Redis的持久化機制?AOF文件和RDB文件哪個大?

線程池原理,核心參數介紹,拒絕策略

==和equals的區別,hashcode的作用,與equals有什麼關係

SpringBoot的原理

Mybatis的動態SQL

編程題:合併兩個有序鏈表

給定a、b兩個文件,各存放50億個url,每個url各佔64字節,內存限制是4G,讓你找出a、b文件共同的url?

2019.8.23 滴滴一面

常用數據結構

堆的定義,排序的過程,爲什麼可以原地操作?放在數組裏面,完全二叉樹

介紹AVL、BST、紅黑樹。爲什麼有了BST還要使用紅黑樹?

Stack怎麼實現的

鏈表和數組的區別

HashMap的底層原來,爲什麼擴容是2倍?

LinkedHashMap的原理,可以用來幹什麼?LRU,介紹LRU,頁面置換爲什麼使用LRU?局部性原理,提高緩存命中率。

設計模式:單例,工廠,模板方法,策略

代理設計模式對應OO模型中的哪一種?組合模型

策略設計模式對應OO模型中的哪一種?

面向對象的三大特徵,多態是怎麼實現的?Java如何實現多繼承,多繼承存在什麼問題?

volatile的作用:禁止重排序,保證可見性

synchronized的底層原理

輕量級鎖和重量級鎖,樂觀鎖和悲觀鎖

自旋鎖的作用是什麼?降低線程切換的成本

String是線程安全的嗎?final關鍵字的作用

Spring AOP原理,動態代理的方式

equals和hascode的關係

JVM運行時內存區域

垃圾回收算法、可達性分析算法,finallize的作用

年輕代爲什麼要分三個區域

2019.8.24 猿輔導二面

介紹項目

Redis的基本數據結構,Set怎麼實現的,跳錶的插入刪除查詢時間複雜度

一致性hash

負載均衡算法有哪些

編程題1:1、4、7、8、3、2找最大值

public class Main {
    public static void main(String[] args) {
        int[] nums = {1,4,7,8,3,2};
        int i = 0, j = nums.length - 1;
        while(i <= j){
            int mid = (i + j) / 2;
            int temp = nums[mid];
            int left = 0, right = 0;
            if(mid - 1 >= 0){
                left = nums[mid - 1];
            }
            if(mid + 1 < nums.length){
                right = nums[mid + 1];
            }
            if(nums[mid] > left && nums[mid] > right){
                System.out.println(nums[mid]);
                break;
            }
            if(nums[mid] > left && nums[mid] < right){
                i = mid + 1;
            }else{
                j = mid - 1;
            }
        }
    }
}

編程題2:節點取值0/1的二叉樹,刪除全部爲0的葉子節點

public class Main {
    
    public static TreeNode solve(TreeNode root){
        if(root == null){
            return null;
        }
        
        TreeNode left = solve(root.left);
        TreeNode right = solve(root.right);
        root.left = left;
        root.right = right;
        if(left == null && right == null && root.val == 0){
           return null;
        }
        return root;
    }
}

簡潔版:

private TreeNode solve(TreeNode root) {
    if (root == null){
        return null;
    }
    root.left = solve(root.left);
    root.right = solve(root.right);
    if (root.left == null && root.right == null && root.val == 0){
        return null;
    }
    return root;
}

2019.8.28 美團三面

HashMap的put和get過程,時間複雜度度是多少?HashMap是如何降低碰撞的概率?

Spring IOC和AOP

編程題:矩陣中左上角到右下角的路徑總數

2019.9.17 百度一面

兩個棧實現隊列

跳臺階

static方法中可以引用非static方法嗎?

Spring中IOC和AOP的原理

mysql中的髒讀和幻讀概念

ThreadLocal

垃圾回收算法和垃圾收集器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章