vivo一面翻車,整理完這份Java面經分類彙總,我突然悟了

前言

這篇記錄一下今年在vivo面試的準備所有面經,我給大家簡單的做了一個分類彙總,本來是用來為vivo二面提前做準備的,誰知道一面都沒過,現在人還在人才庫裡。 我還是很想去vivo的,希望下次能有機會吧。

vivo一面翻車,整理完這份Java面經分類彙總,我突然悟了

vivo 面經彙總

Java基礎

1.

JDK JRE

2.

Java異常瞭解嗎?說說平時遇到的異常?說出6種常見的java異常。寫程式遇到過哪些異常 執行時異常有哪些

3.

面向物件 面對物件的幾大特性 多型怎麼

4.

修飾符:public;protect;default;private優先順序

5.

對string類的理解。stringbuffer 和 stringbuilder

6.

反射機制介紹一下

7.

bio,nio,aio分別介紹一下,nio的實現方式

8.

問了public等變數定義修飾詞的時間域

9.

問了反射機制,還有問了動態代理的好處和壞處,好處答不上來

10.

介面和抽象類的區別。

11.

有一個public static final的HashMap,裡邊物件的屬效能不能修改?

12.

為什麼java 平臺無關性 機器碼和位元組碼區別 JVM載入程式碼的一個流程

13.

java資料型別以及自己的應用 自動拆箱和自動裝箱以及自己的應用即什麼時候用到的,列舉幾種情況

14.

什麼是值傳遞和引用傳遞,區別及應用

15.

過載和重寫

16.

static方法是否能重寫,介面和抽象類的區別

17.

你覺得java是一種什麼樣的語言以及java特性

18.

lamda表示式瞭解嗎?1。8新特性有什麼?(面試寶典對介面抽象這個問題是錯的,過時了)

19.

記憶體洩露怎麼造成的,怎麼排查

20.

講講final修飾符。

21.

一個物件佔多少記憶體。

22.

最短路徑問題

23.

java淺複製和深複製

24.

記憶體洩露的原因和處理

25.

java反射機制,優點缺點

26.

說說靜態變數和非靜態變數的區別,用類名呼叫靜態變數和用例項物件呼叫靜態變數有區別嗎?非靜態方法裡可以有靜態變數嗎?

27.

static能不能被重寫?

重寫方法的目的是為了多型,或者說:重寫是實現多型的前提,即重寫是發生在繼承中且是針對非static方法的。

語法上子類允許出現和父類只有方法體不一樣其他都一模一樣的static方法,但是在父類引用指向子類物件時,透過父類引用呼叫的依然是父類的static方法,而不是子類的static方法。

即:語法上static支援重寫,但是執行效果上達不到多型目的

28.

序列化,反序列化,什麼時候用? 如何對一個物件序列化

Java集合類

1.

Hashmap底層(陣列+連結串列+紅黑樹)hashmap為什麼執行緒不安全,如何保證執行緒安全,就扯到concurrenthashmap hashmap底層實現 多執行緒會出現什麼情況 擴容機制是什麼為什麼會死鎖 如何解決碰撞 Jdk 1。8的最佳化。為什麼使用紅黑樹,它是如何做到效率最佳化的? hashmap瞭解不,原理是什麼,點陣圖瞭解不,跳躍表瞭解不,紅黑樹瞭解不,紅黑樹插入過程,B+樹瞭解不,B+樹特點和插入過程,鄰接表和鄰接矩陣區別,分別在什麼地方用到,插入和查詢的流程。

2.

concurrenthashmap1。7和1。8的區別;concurrenthashmap說說,它是如何保證執行緒安全的?jdk1。7的hashentry和segment鎖。具體說說segment鎖?能講下ConcurrentHashMap的實現原理麼 JDK7或者8都行

3.

常用集合類 實現類

4.

list和set區別(重複/不重複)

5.

set,list,map(執行緒安全的map,map怎麼實現之類的)

6.

紅黑樹介紹一下,跟平衡二叉樹比較一下,紅黑樹有哪些應用場景

7.

你常用的資料結構有哪些?

8.

紅黑樹的特點,AVL樹

9.

一致性雜湊函式以及hashmap的put方法

10.

陣列、二叉搜尋樹、B樹、B+樹

11.

堆和棧。堆、棧

12.

二叉樹的最大節點個數;2^n-1;

Java併發

1.

java建立執行緒的方式,runnable和callable區別(引數不同)1。 java執行緒的狀態有哪些;執行緒的幾種狀態

2.

wait和sleep的區別;wait和notify的使用場景;

3.

介紹一下volatile以及原理;volatile介紹一下Volatile底層是如何實現的? 說了記憶體可見性和記憶體屏障,Volatile是絕對線2程安全的嗎?不是,沒有保證原子性。volatile關鍵字線上程通訊的問題

4.

介紹一下synchornized以及原理; lock和synchornized的區別;synchronized鎖的升級過程?Synchronized,底層是如何實現的?說了monitor物件頭,以及兩個monitorenter和monitorexit運用於程式碼塊。物件頭是儲存了哪些資訊?說說synchronized的鎖最佳化過程?說了偏向,自旋,輕量和重量。

5.

介紹一下AQS;

6.

說一下公平鎖和非公平鎖的原理;

7.

cas操作是什麼,以及可能出現的問題;

8.

執行緒池,然後你再平時怎麼用的,工作原理,有哪些重要引數,飽和策略有哪些;執行緒池瞭解吧,說說如何實現執行緒池?核心引數哪些?有哪些阻塞佇列呢?如何優雅的關閉執行緒池 執行緒池(執行緒大小,阻塞佇列)執行緒建立,執行緒池引數,說說你常用的執行緒池?說了new ***d 和newFixed。以及介紹各個引數

9.

說說你理解的悲觀鎖和樂觀鎖?樂觀鎖有哪些?樂觀鎖有什麼缺點?

10.

阻塞佇列 執行緒間通訊方式 建立執行緒方式 建立執行緒池方式 執行緒池常用引數

11.

鎖有哪些

12.

說說你常用的併發包JUI?

13.

問了如何保證多執行緒通訊

14.

你用過Java的J。U。C併發包吧,給我講一下AQS的原理

15.

CAS的原理給我講一下,他是怎麼保證記憶體的可見性的。CAS會產生什麼問題

16.

知道Java中的記憶體模型吧,它有8個指令你給我說一下

17.

多執行緒如何保持同步?

18.

java可見性的關鍵字及其原理。

19.

cpu密集型多執行緒和io密集型多執行緒的比較。cpu密集型裡如何管理多執行緒? 用什麼樣的執行緒池和阻塞佇列?

20.

cpu執行緒特別多會產生什麼問題?io密集型裡怎麼減少需要的執行緒數?

21.

io多路複用的原理和實現。怎麼減少處理io(和磁碟io互動)所需要的執行緒?

22.

執行緒實現方式。有什麼區別。執行緒之間的通訊,程序之間的通訊。

JVM

1.

JVM執行時記憶體區域劃分?哪些執行緒私有?執行時資料區,私有共享都是哪些?堆區記憶體如何分配?

2.

物件的生命週期?

3.

JVM垃圾回收器,cms和g1的特點,兩者的區別是什麼,比g1更加先進的垃圾回收器有了解麼,ZGC原理,能夠管理多大的記憶體,CMS能管理多大的記憶體,G1呢

4.

JVM記憶體模型 類的生命週期 類載入過程 雙親委派機制瞭解嗎 進入老年代過程 什麼情況下直接進入老年代

5.

JVM記憶體分佈(堆疊等,程式計數器+jvm棧+本地方法棧執行緒不共享,堆和方法區執行緒共享)

6.

類載入機制,過程,類載入機制?如何自定義實現類載入器?雙親委派模型、類載入器類別,雙親委派模型本質是解決了什麼問題?安全性,有哪幾種類載入器?類載入的流程。知道哪些類載入器。類載入器之間的關係?雙親委派模型。為什麼使用雙親委派模型?

7.

垃圾回收演算法,常見的垃圾回收器及他們之間區別,垃圾回收發生在哪裡,怎麼判斷物件存活、GC Roots具體有哪些、講講物件分配與回收,什麼可以作為垃圾回收的物件,垃圾回收演算法和流程。

8.

棧什麼情況下會溢位?

9.

靜態變數存放在記憶體哪個區域?

10.

怎麼檢視java虛擬機器記憶體佔用?

11.

如何減少full gc的次數?方法區是否需要gc

12.

4個引用型別

計算機網路

1.

輸入一個url後的過程;瀏覽器從傳送請求的全部過程

2.

OSI七層和TCP四層協議,OSI七層模型/五層模型,每一層有哪些協議,http,tcp,ip位於哪一層

3.

TCP三次握手四次分手,tcp四次揮手為什麼要四次,為什麼TCP是安全的,TCP,UDP的區別

4.

TCP報文結構,HTTP結構, TCP,UDP,HTTP的報文格式(我懵了)

5.

設計一個應用層協議(沒有答出來

6.

HTTP協議連線過程,HTTPS連線過程,HTTP的長連線是怎麼做的HTTP2和HTTP1區別,HTTP請求過程http的幾種方法,HTTP跟HTTPS的區別,https加密過程

作業系統

1.

程式,程序和執行緒的區別

2.

什麼時候情況下要用多執行緒?

3.

程序之間怎麼通訊的?

4.

一個手機應用程式裡面的程序和執行緒分別是怎麼進行的?

5.

死鎖,怎麼解死鎖,死鎖條件,怎麼預防

6.

程序的狀態:阻塞+就緒+執行

7.

手機記憶體8g,是32位的,一個程序能申請多少記憶體?

8.

執行緒的應用,舉例,執行緒的阻塞

9.

主執行緒和子執行緒的區別

Linux :

1.

linux中如何檢視CPU負載 top

2.

linux用過嘛(扯到了我訓練過深度模型,小哥哥直接來了個場景題)場景題:推薦演算法中如何控制廣告推送頻率(結合強化學習說了一些

3.

Linux瞭解不,df dh區別,如何格式化磁碟,磁碟掛載過程,tcp丟包如何排查,docker是用什麼實現的

4.

怎麼查詢特定字尾名或字首名的檔案

Mysql

1.

資料庫引擎事務隔離級別,序列化如何實現,資料庫的隔離級別?四個。你平常使用的是哪個隔離級別。資料庫隔離級別以及分別解決了什麼問題

2.

MySQL的儲存引擎有哪些?它們之間的區別?你用的mysql儲存引擎?為什麼選擇它?實現原理?

3.

怎麼判斷一個SQL語句有沒有走索引?緊接著問explain知道哪些欄位嗎

4.

mysql儲存模型 區別 怎麼看用沒用索引 怎麼判斷sql語句好壞

5.

資料庫中索引B+樹

6.

一個手機應用要更改資料庫,它的底層是怎麼實現的?

7.

sql查詢過程

8.

MySQL InnoDB儲存引擎中的MVCC解決了什麼問題,能說下MVCC的實現原理麼

9.

SQL語句經常寫吧,那我給你出一道SQL題(分組求和排序)

10.

你認為什麼情況下不應該建立索引

11.

mysql有幾種鎖?怎麼實現?

12.

innodb事物的級別

13.

b 樹的結構?與二叉樹的區別?與b樹的區別?

14.

寫過最複雜的sql, 手寫程式碼: 統計各個科目考試最高分:最複雜的包括了sum、case、left join、group by,追問左連線和內聯區別,沒答上來

15.

聚簇索引跟紅黑樹

16.

sql :給一個日期範圍,統計每天入庫的資料總量

17.

sql語句裡like和in關鍵字

18.

sql語句,求平均分超過60分的學生學號

19.

資料庫sql怎麼最佳化

20.

什麼情況不能用索引?

21.

SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2 什麼時候會發生死鎖;怎麼解決死鎖;N個資源怎麼辦?

redis

1.

你知道redis的什麼東西

2.

redis中zset,說了一下跳躍表的插入,刪除過程;

3.

點陣圖知道原理嘛(作業系統中的位示圖還是bitmap?不太瞭解)

4.

redis資料型別,redis的應用場景,為什麼redis快

5.

Redis的key的寫入和刪除的原理

6.

怎麼保證Redis的高可用

7.

redis資料結構?單執行緒還是多執行緒?

8.

用什麼樣的佇列?你是怎麼實現?我回答的redis的list實現的)這種佇列有什麼缺點?

9.

分散式鎖;

mq

1.

你還用過rabbitMQ呀,它能夠做什麼?

2.

rabbitMQ是怎麼保證訊息不丟的,從客戶端—訊息佇列, 訊息佇列—伺服器端的角度考慮

spring

1.

開源框架有哪些瞭解的 為什麼用spring 為什麼不用new就可以自動生產 能不能自己實現一個

2.

spring security是幹嘛的,原理是啥,jwt幹啥的

3.

後臺用什麼框架?ioc,aop,其他還有什麼框架也可以做到ioc,aop(2333~不就spring?)

4.

Spring IOC,AOP,註解

設計模式

1.

雙重檢索單例

2.

設計模式分為哪三類,各有什麼?設計模式,用過哪些設計模式,講幾個,設計模式和原則

3.

代理模式屬於哪一類

4.

生產者消費者模式,生產消費者的,以及多生產者同步

5.

描述介面卡,寫單例

6.

單例模式,裝飾模式,

分散式

1.

負載均衡的演算法有哪些;

2.

rpc dubbo的元件有哪些

3.

分散式事務,CAP定理,有沒有使用過相關的產品

4.

zookeeper瞭解嗎

5.

hbase索引的結構,kafka儲存的結構,二進位制檔案的組織方式,kafka如何避免訊息**丟失,zookeeper在kafka中是幹啥的,kafka在zookeeper中儲存的資料,zookeeper瞭解不,zookeeper的共識演算法,分割槽後如何解決。

6.

protobuf瞭解不,grpc瞭解不,用的什麼協議,HTTP2和HTTP1區別,websocket建立連線過程

7.

RPC你瞭解過嗎?

8.

如何分散式儲存?

演算法

1.

排序演算法有哪些,簡述冒泡和歸併排序,冒泡演算法的最佳化,講講歸併排序,冒泡的最佳化知道嗎;回答相等不交換,還有flag做已排序標誌的最佳化;直接插入排序,寫一下虛擬碼或者說一下思路,插入排序,時間複雜度

2.

堆排序原理

3.

快排,快排是什麼思想,快排的最佳化是啥,為啥這麼做;

4.

字母排序

5.

100個數中找出想要的數

6.

一個數組分成2個相等或接近的子陣列

7.

派單的最短路徑問題

8.

很大的資料,記憶體放不下,如何快速找到中間值

9.

手撕棧

10.

連結串列找環 連結串列找環入口,不用雙指標怎麼做

11.

雙向連結串列實現 ,寫了個add()和add(index)的

12.

求陣列的全排列

13.

中序遍歷,遞迴非遞迴

14.

求四個數絕對值的最小值

15.

黑貓白貓,混在一起,如何把他們區分開? 黑白灰三種貓混在一起,如何按照黑白灰排好序? 還有兩個小問題忘記了。

16.

如何用一個int值,表示三種狀態?

其他

1.

給你10個tomcat你如何判斷自己用哪個(容器?emmmm,求指點)點陣圖知道原理嘛(作業系統中的位示圖還是bitmap?不太瞭解)所謂的Bit-map就是用一個bit位來標記某個元素對應的Value, 而Key即是該元素。由於採用了Bit為單位來儲存資料,因此可以大大節省儲存空間。其實就是位示圖為原型,01儲存的,建議面試的時候知道多少說多少,知道什麼說什麼~

2.

序列化相關

3.

最後還是問專案,專案中的難點,是如何解決的?

4.

c++程式設計搞過沒,GPU程式設計瞭解不,用的什麼GPU,GPU運算效能是什麼決定的

5.

如果某個使用者同時請求建立活動介面100次,如果防止它被重複建立?建立前檢視該記錄是否存在、使用鎖、如果是分散式的使用分散式鎖—這樣解決了99。99%的問題。除了使用這些方案,還能使用什麼方法解決嗎?

6.

講講分散式鎖的實現

7.

io量很大,佇列很長怎麼辦?

8.

Q:覺得用過的模板解析引擎有什麼不同的特徵。A:用過JSP和Thymeleaf,JSP我就說適合Java程式設計師做前端,本質還是Servlet,生產環境下除錯方便;Thymeleaf是SpringBoot專案碰到的,本質是EL,語法特殊,但是前後端傳值、傳物件方便。

9.

講一下對jQUERY的使用感受A:研一的專案做過iOS開發,用OC做的webview APP,用到了jQuery Mobile做介面和事件控制,感覺很方便。 後面的Web專案主要用來進行Ajax操作,選擇器很方便。

10.

碩士一個專案涉及到跨系統整合,要我在紙上畫出整合邏輯架構,介紹一下開發用到的技術和業務環境。整合用的WebService,引入Apache旗下的Axis, 涉及到檔案傳輸和多資料來源配置。。。。

11.

用過eclipse、IDEA、Myeclipse,評價一下區別 程式碼提示、外掛庫、收費與免費、程式碼模板、資源消耗

12.

用過EJB和SSH,評價一下區別

13.

問了實習經歷 瞭解分散式嗎?

14.

你怎麼用的websocket?

15.

想做安卓還是java後臺?手機端安卓怎麼開發的?

16.

activity四大元件

17.

介紹一下service

18.

APP的啟動流程

19.

Android事件分發機制

20.

view的測量方法;

21.

Android之間執行緒通訊

22.

介紹一個你用心做的模組,專案流程,怎麼理解非同步同步,什麼場景用;static能不能被重寫?

23.

MD5為啥要加鹽(彩虹表·);UUID有多少位(32位)

vivo一面翻車,整理完這份Java面經分類彙總,我突然悟了

HR面試場景模擬

1``:說說最自豪的一件事?最有意義的經歷?

2``:說下為什麼選擇計算機行業?為什麼放棄了本科四年+研究生三年的本專業?

3``:為什麼選擇vivo?有拿到其它的offer嗎?

4``:為什麼讀研?

5``:你相比於科班的優點?

6``:詢問父母情況,是否單身?7``:期望薪資

個人的實習實踐經歷等等,然後問了你覺得大學四年你最挫敗的事情,詳細講一講

然後重點來了接下來就是傳說中的三保一問題了

1``、假如公司1,公司2,vivo同時發offer給你,你怎麼選擇?為什麼?

2``、假如家裡,公司,學校同時需要你去解決事情,你怎麼安排,怎麼考慮?然後問到了意向薪資(完全不知道怎麼說,很尷尬啊,說的高了怕被拒,說的低了怕被 看不起,太難了),意向工作城市這些問題問一些為什麼想加入vivo啊,瞭解vivo嗎的問題,主要看你是不是真想加入vivo。其他都是閒聊

自我介紹?缺點?對學習成績的評價,以及如何看待學習成績?課餘做什麼?對vivo的瞭解如何看待加班?評價自己的學習能力?工作城市的選擇是否有其他offer?問了自己的三大優點,還有自己的缺點

問了為啥跨專業,其實也不算跨專業,雖然我是生物醫學工程的,但是我們平時就是做軟體相關的;問了成績情況 問了家庭情況。

家是哪的,父母幹啥為什麼寫程式碼如何自學的深圳和杭州偏向那個給一個理由說服錄用你六級成績

你認為你覺得做過最有成就感的專案是哪個?以及遇到了什麼困難,是怎麼解決的

你瞭解vivo嗎?你對薪資的期望是多少?你認為選擇一個公司,什麼重要你認為怎麼對新人進行培養比較好你認為你要具備什麼樣的軟體工程師素質才能勝任你的工作?你認為自己有什麼優點?你在實習的公司工作的感受是什麼?你有什麼問題問我的嗎?

1``、為什麼選擇讀研?

2``、為什麼選擇開發崗不去做演算法?

3``、研究生``3``年都做了什麼?

4``、對vivo瞭解多少?

5``、從哪得到的招聘資訊?

6``、為什麼選擇杭州?

7``、秋招還準備報哪幾家?

8``、還有什麼想了解的?

首先是自我介紹

自己感覺自己比較成功的專案經歷專案具體背景以及自己在專案中的角色,專案開發團隊在這次專案中,你遇到的問題,自己是怎麼解決的為什麼選擇軟開這個行業職業規劃家庭情況以及個人情況談談自己最大的優點,自己是個怎樣的人(也就是自己有什麼優勢)

1``。自我介紹

2``。專業不是計算機,但是研究方向是做java web,問了些情況

3``。實習經歷

4``。意向工作城市

5``。有沒有掛科過,本碩階段學院排名

6``。進入vivo想學到什麼7``。工作階段收穫最大的方面

1``。自我介紹

2``。你比其他人的優勢在哪

3``。你期望實習帶給你什麼

4``。你瞭解vivo嘛

5``。你認為一個合格的軟體工程師需要什麼

6``。什麼時候能來實習,能實習多長時間

1``。你的優勢?

2``。你瞭解vivo嗎?

3``。你來公司想提升自己什麼?

4``。興趣愛好

5``。實習時間

6``。有offer了嗎?

1``。自我介紹

2``。平時在幹些什麼

3``。成績怎麼樣,能保研嗎

4``。保研還是工作

5``。你比其他人的優勢在哪

6``。你期望實習帶給你什麼

7``。瞭解vivo嗎

8``。你認為一個合格的軟體工程師需要什麼

9``。你什麼時候能來實習

1``。自我介紹一下吧(又介紹

2``。讓你比較有成就感的事情?為什麼覺得這個讓你比較有成就感

3``。你的優缺點是什麼

4``。你考研考的最差的一門課

5``。為什麼不想去南京

6``。程式設計能力給自己打幾分

7``。還收到過別的公司的offer嗎

中間在一個房間等了差不多10-15分鐘的樣子,然後去了hr房間先自我介紹。

hr就問了幾個問題,只去南京嗎?我說嗯,為什麼?男朋友在南京,考研的嗎?推免的,大小周能接受嗎?我:可以

然後就問了一些基本情況問題,其實簡歷上都有,沒辦法,翻了個白眼之後只能繼續給他說。。。

之後就讓我問她問題,我說我沒有啥問題

hr說這周就會通知,不管過沒過(心裡瞬間就有個底了)

1``,對vivo有了解嗎(得虧新出了iqoo)

2``,還是專案,專案的職責(我是組長),遇到的問題,怎麼解決的,有什麼收穫

3``,你是哪裡人,深圳南京東莞你更傾向哪個城市?

4``,有沒有其他offer(有一個小公司的,因為錢少 估計沒成長就不準備去)

5``,你還有什麼問題(我說了我在一面問過新員工培訓的事,所以沒其他問題)

然後就是沒問加班有女朋友沒? (問題順序我記不清楚了,隨便寫了)你最喜歡哪些公司?會不會比較偏愛網際網路公司?你喜歡深圳呀,如果分你去南京呢?你未來的規劃?職業規劃?(感覺就是確認下,你是不是不喜歡這種做硬體不是網際網路的公司。。。提前準備個自然的點的說辭)

剩下記不清楚了,自我介紹和對簡歷的內容扯淡花了些時間。(以上大約15分鐘)

然後開始我問他問題。

1``。介紹一下自己

2``。為什麼搞開發,有考慮過轉行通訊?(學校通訊比較吊。。)

3``。為什麼不考研?

4``。優點缺點,舉個例子(所以別給自己挖坑。。)

5``。英語怎麼樣?四六級?

6``。大學成績,學習情況?

7``。實習的情況,介紹一下

8``。想待在哪兒?南京,深圳?

9``。職業規劃?

10``。你覺得什麼公司比較好?(我說我覺得在南京vivo就很好。。。沒敢說南京有三坑那個梗)11``。有女朋友沒?(有,我頭像就是我老婆。。)當然沒有。為什麼不找?學習太忙了,學校女生本來也很少。(其實就是找不到。。)

12``。你有什麼問題問我?

總體流程差不多就是這個樣子,還有一些細節部分就不寫出來了,本來都是為了二面準備,結果也沒整成,但還是把有限的經驗給大家整理了出來,最後大家能理解多少,看個人悟性吧!

最後

給大家貢獻一點福利,近期為面試準備整理的Java面經,這次限時給大家分享出來,需要獲取的朋友,可轉發本文並在後頭

私信

面經

即可,如有打算近期面試的朋友們多抓緊了,別錯過了喲~

資料如下圖:

vivo一面翻車,整理完這份Java面經分類彙總,我突然悟了

vivo一面翻車,整理完這份Java面經分類彙總,我突然悟了