“金三銀四”之一線互聯網公司Java高級面試題總結

“金三銀四”之一線互聯網公司Java高級面試題總結

OPPO架構師面試題

1,ArrayList,HashMap底層結構

2,redis2和redis3的區別,redis3內部通訊機制

3,dubbo內部機制,數據怎麼流轉的

4,如何設計一套高併發支付方案,架構如何設計

5,lucence內部結構

6,hibernate和mybatis最本質的區別

7,當前redis集群有哪些玩法,各自優缺點,場景

8,es索引數據多了怎麼辦,如何調優,部署

9,rabbitmq如何實現集群高可用

10,kafka,activemq,rabbitmq本質區別是啥

11,多線程如果線程掛住了怎麼辦

1、基礎與框架

String類能被繼承嗎,為什麼String,Stringbuffer,StringBuilder的區別?

ArrayList和LinkedList有什麼區別

類的實例化順序,比如父類靜態數據,構造函數,字段,子類靜態數據,構造函數,字段,他們的執行順序

用過哪些Map,都有什麼區別,HashMap是線程安全的嗎,併發下使用的Map是什麼,

他們內部原理分別是什麼,比如hashcode,擴容等

HashMap為什麼get和set那麼快,concurrentHashMap為什麼能提高併發

抽象類和接口的區別,類可以繼承多個類麼,接口可以繼承多個接口麼,類可以實現多個接口麼

什麼情況下會發生棧內存溢出?

什麼是nio,原理?

反射中,Class.forName和ClassLoader區別?

tomcat結構,類加載器流程?

講講Spring事務的傳播屬性,AOP原理,動態代理與cglib實現的區別,AOP有哪幾種實現方式?

Spring的beanFactory和factoryBean的區別

Spring加載流程

Spring如何管理事務的

2、多線程

線城池的最大線程數目根據什麼確定

多線程的幾種實現方式,什麼是線程安全,什麼是重排序

volatile的原理,作用,能代替鎖麼

sleep和wait的區別,以及wait的實現原理

Lock與synchronized 的區別,synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖

用過哪些原子類,他們的參數以及原理是什麼

用過哪些線程池,他們的原理簡單概括下,構造函數的各個參數的含義,比如coreSize,maxsize等

有一個第三方接口,有很多個線程去調用獲取數據,現在規定每秒鐘最多有10個線程同時調用它,如何做到。

spring的controller是單例還是多例,怎麼保證併發的安全

用三個線程按順序循環打印abc三個字母,比如abcabcabc

ThreadLocal用過麼,原理是什麼,用的時候要注意什麼

如果讓你實現一個併發安全的鏈表,你會怎麼做

3、JVM相關

jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講對象如何晉升到老年代,幾種主要的jvm參數等

你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms

當出現了內存溢出,你怎麼排錯

JVM內存模型的相關知識瞭解多少

簡單說說你瞭解的類加載器

JAVA的反射機制

4、網絡

http1.0和http1.1有什麼區別

TCP三次握手和四次揮手的流程,為什麼斷開連接要4次,如果握手只有兩次,會出現什麼

TIME_WAIT和CLOSE_WAIT的區別

說說你知道的幾種HTTP響應碼

當你用瀏覽器打開一個鏈接的時候,計算機做了哪些工作步驟

Linux下IO模型有幾種,各自的含義是什麼

TCP/IP如何保證可靠性,數據包由哪些數據組成

5、架構設計與分佈式

tomcat如何調優,各種參數的意義

常見的緩存策略有哪些,你們項目中用到了什麼緩存系統,如何設計的,Redis的使用要注意什麼,持久化方式,內存設置,集群,淘汰策略等

如何防止緩存雪崩

用java自己實現一個LRU

分佈式集群下如何做到唯一序列號

設計一個秒殺系統,30分鐘沒付款就自動關閉交易

如何做一個分佈式鎖

用過哪些MQ,怎麼用的,和其他mq比較有什麼優缺點,MQ的連接是線程安全的嗎

MQ系統的數據如何保證不丟失

分佈式事務的原理,如何使用分佈式事務

什麼是一致性hash

什麼是restful,講講你理解的restful

如何設計建立和保持100w的長連接?

解釋什麼是MESI協議(緩存一致性)

說說你知道的幾種HASH算法,簡單的也可以

什麼是paxos算法

redis和memcached 的內存管理的區別

一個在線文檔系統,文檔可以被編輯,如何防止多人同時對同一份文檔進行編輯更新

6、算法

10億個數字裡裡面找最小的10個

有1億個數字,其中有2個是重複的,快速找到它,時間和空間要最優

2億個隨機生成的無序整數,找出中間大小的值

遍歷二叉樹

7、數據庫

數據庫隔離級別有哪些,各自的含義是什麼,MYsql默認的隔離級別是是什麼,各個存儲引擎優缺點

高併發下,如何做到安全的修改同一行數據,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義

SQL優化的一般步驟是什麼,怎麼看執行計劃,如何理解其中各個字段的含義,索引的原理?

數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖

MYsql的索引實現方式

聚集索引和非聚集索引的區別

數據庫中 BTREE和B+tree區別


阿里二面


1、自我介紹

2、介紹項目,對項目一定要屬性,問的很詳細,所以一定要對項目很瞭解

3、他就和我說遞歸,遞歸是個什麼東西,怎麼調用,已經遞歸的一些問題,和while有什麼區別(我在說的時候結合了JVM來說的)

4、就說序列化,怎麼序列化,為什麼序列化,反序列化會遇到什麼問題,如何解決

5、就是將我的職業規劃,我給他說工作幾年要回成都(差點血崩)



網友面試題蒐集

MySQL InnoDB存儲的文件結構

索引樹是如何維護的?

數據庫自增主鍵可能的問題

Redis的併發競爭問題如何解決了解Redis事務的CAS操作嗎

分析線程池的實現原理和線程的調度過程

動態代理的幾種方式

Spring AOP與IOC的實現

為什麼CGlib方式可以對接口實現代理?

RMI與代理模式

Dubbo的底層實現原理和機制

描述一個服務從發佈到被消費的詳細過程

算法方面考察了一個簡單的數組就地去重問題,用丟棄數組尾部元素的方式實現

分佈式系統怎麼做服務治理

接口的冪等性的概念

Maven出現版本衝突如何解決

JVM垃圾回收機制,何時觸發MinorGC等操作

新生代和老生代的內存回收策略

Eden和Survivor的比例分配等

Synchronized和Lock的區別

==============================================

阿里巴巴:

JVM內存分代

Java 8的內存分代改進

深入分析了Classloader,雙親委派機制

JVM的編譯優化

對Java內存模型的理解,以及其在併發中的應用

指令重排序,內存柵欄等

HashMap的併發問題

瞭解LinkedHashMap的應用嗎

在工作中遇到過哪些設計模式,是如何應用的

==================================================

優酷土豆:

TCP/IP協議

長連接與短連接

mapreduce過程

多路歸併的時間複雜度

海量url去重類問題

Java NIO使用

倒排索引的原理

對分詞技術的瞭解

==================================================

搜狐新聞:

消息中間件如何解決消息丟失問題

Dubbo的服務請求失敗怎麼處理

重連機制會不會造成錯誤

對分佈式事務的理解

深入分析幾個設計模式

========================================

58趕集:

HTTP請求的報文格式Spring的事務實現原理

實際場景問題,大量用戶數據如何在內存中排序和去重

緩存機器增刪如何對系統影響最小,一致性哈希的實現

Redis持久化的幾種方式

Redis的緩存失效策略

實際場景問題解決,典型的TOP K問題

實際場景問題,海量登錄日誌如何排序和處理SQL操作,主要是索引和聚合函數的應用

=========================================

國美在線:

SQL語句編寫

MySQL的幾種優化

Spring行級鎖

Spring衍生的相關其他組件整理

RMI的幾種協議和實現框架

BTree相關的操作

數據庫鎖表的相關處理

考察跳臺階問題

=========================================

陸金所面試題


1、多線程和併發的聯繫與區別?

2、單例模式下如何實現多線程?什麼是懶漢單例、餓漢單例?

3、反射的原理,反射創建類實例的三種方式是什麼?

4、如何實現負載均衡,有哪些算法可以實現?

5、Memcache的原理,哪些數據適合放在緩存中?

6、Zookeeper的用途,選舉的原理是什麼?

7、說說你常用的設計模式,觀察者模式是什麼原理?

8、說說你對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工作的?

9、JVM中類加載機制是什麼?創建一個多線程後這個線程對象是放在什麼區域的?垃圾回收算法的實現原理?

10、Linux是怎麼分區的?對shell腳本是否熟悉?

11、Mybatis的底層實現原理,Mybatis和Hibernate的區別,為什麼Mybatis會取代Hibernate?


唯品會面試題


vip面試題:

1.hashmap為啥不安全(這個忘記了)

2.concurrenthash實現(默認容量,什麼時候擴容,怎麼擴容)

3.線程池(包含什麼,core、max聯繫)

5.synchronized原理

6.volatile原理

7.jmm(主內存、工作內存【緩存行什麼的】、happens-before、)

8.有哪些無鎖數據結構?無鎖實現的原理?

9.設計模式(裝飾器設計模式、代理模式、單例模式、工廠模式(3種))

10.dubbo設計思路、netty原理

11.一次rpc請求的過程

12.MySQL怎麼創建合理索引、索引怎麼優化?

13.b+tree怎麼分裂、什麼時候分裂、為什麼是平衡的?

14.MySQL事務實現原理,ACID實現原理

15.MySQL怎麼優化table scan?(掃描區,因為區是連續的64個頁,可以避免隨機掃描)

16.算法:有3n+1個數字,其中3n箇中是重複的,只有1個是不重複的,怎麼找出來?(遞歸方式)

17.如果還問的話,可能會問的(怎麼接收一個網絡包,怎麼優化文件io、網絡io,建議我多看io和網絡方面的資料)


以上面試題來自網絡整理;


分享到:


相關文章: