百度现场面试:JVM+算法+Redis+数据库!(三面)| CSDN博文精选
自我介紹
Java中的多態
為什么要同時重寫hashcode和equals
Hashmap的原理
Hashmap如何變線程安全,每種方式的優缺點
垃圾回收機制
Jvm的參數你知道的說一下
設計模式了解的說一下
手撕一個單例模式
算法題目
手撕算法:反轉單鏈表
手撕算法:實現類似微博子結構的數據結構,輸入一系列父子關系,輸出一個類似微博評論的父子結構圖
手寫java多線程
手寫java的soeket編程,服務端和客戶端
手撕算法:
爬樓梯,寫出狀態轉移方程
智力題:
時針分針什么時候重合
自我介紹
項目介紹
服務器如何負載均衡,有哪些算法,哪個比較好,一致性哈希原理,怎么避免DDOS攻擊請求打到少數機器?
TCP連接中的三次握手和四次揮手,四次揮手的最后一個ack的作用是什么,為什么要time wait,為什么是2msl?
數據庫的備份和恢復怎么實現的,主從復制怎么做的,什么時候會出現數據不一致,如何解決?
Linux查看cpu占用率高的進程
手撕算法:給定一個數字三角形,找到從頂部到底部的最小路徑和。每一步可以移動到下面一行的相鄰數字上。
然后繼續在這個問題上擴展
求出最短那條的路徑
遞歸求出所有的路徑
設計模式講一下熟悉的
會不會濫用設計模式?
多線程條件變量為什么要在while體里?
你遇到什么挫折,怎么應對和處理?
自我介紹
項目介紹
Redis的特點
Redis的持久化怎么做,aof和rdb,有什么區別,有什么優缺點?
Redis使用哨兵部署會有什么問題?【我說需要擴容的話還是得集群部署。】
說一下JVM內存模型把,有哪些區,分別干什么的?
說一下gc算法,分代回收說下
MySQL的引擎講一下,有什么區別,使用場景呢?
分布式事務了解么?
反爬蟲的機制,有哪些方式?
阿里中間件(四面)
Java中間件一面 技術一面考察范圍:
重點問了Java線程鎖:synchronized 和ReentrantLock相關的底層實現
線程池的底層實現以及常見的參數
數據結構基本都問了一遍,鏈表、隊列等
Java內存模型:常問的JVM分代模型,以及JDK1.8后的區別,最后還問了JVM相關的調優參數
分布式鎖的實現比較
技術一面題目: 1:自我介紹 2:擅長哪方面的技術? 3;java有哪些鎖中類?(樂觀鎖&悲觀鎖、可重入鎖&Synchronize等) 4:比較重要的數據結構,如鏈表,隊列,棧的基本原理及大致實現 5:J.U.C下的常見類的使用。Threadpool的深入考察;blockingQueue的使用 6:Java內存分代模型,GC算法,JVM常見的啟動參數;CMS算法的過程 7:Volatile關鍵字有什么用(包括底層原理)? 8:線程池的調優策略 9:Spring cloud的服務注冊與發現是怎么設計的? 10:分布式系統的全局id如何實現 11:分布式鎖的方案,redis和zookeeper那個好,如果是集群部署,高并發情況下那個性能更好?
Java中間件二面
技術二面考察范圍:
問了項目相關的技術實現細節
數據庫相關:
索引、索引底層實現、mysql相關的行鎖、表鎖等
redis相關:
架構設計、數據一致性問題
容器:容器的設計原理等
技術二面題目:
參與的項目,選一個,技術難度在哪里?
Collections.sort底層排序方式
負載均衡的原理
設計模式與重構,談談你對重構的理解
談談redis相關的集群有哪些成熟方案?
再談談一致hash算法(redis)
數據庫索引,B+樹的特性和建樹過程
Mysql相關的行鎖,表鎖、樂觀鎖、悲觀鎖
談談多線程和并發工具的使用
談談redis的架構和組件
Redis的數據一致性問題(分布式多節點環境&單機環境)
Docker容器?
技術三面考察范圍:
主要談到了高并發的實現方案
以及中間件:
redis、rocketmq、kafka等的架構設計思路
最后問了平時怎么提升技術的
技術三面題目:
高并發情況下,系統是如何支撐大量的請求的?
接著上面的問題,延伸到了中間件,kafka、redis、rocketmq、mycat等設計思路和適用場景等
最近上過哪些技術網站?最近再看哪些書?
工作和生活中遇見最大的挑戰,怎么去克服?
未來有怎樣的打算
最后,你懂的,主要就是HR走流程了,主要問了未來的職業規劃。 螞蟻中間件團隊面試題 螞蟻中間件一面
自我介紹
JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法?
新生代和老年代的回收機制
講一下ArrayList和linkedlist的區別,ArrayList與HashMap的擴容方式
Concurrenthashmap1.8后的改動
Java中的多線程,以及線程池的增長策略和拒絕策略了解么?
Tomcat的類加載器了解么?
Spring的ioc和aop,Springmvc的基本架構,請求流程
HTTP協議與Tcp有什么區別,http1.0和2.0的區別?
Java的網絡編程,講講NIO的實現方式,與BIO的區別,以及介紹常用的NIO框架
索引什么時候會失效變成全表掃描?
介紹下分布式的paxos和raft算法
你在項目中怎么用到并發的?
消息隊列的使用場景,談談Kafka
你說了解分布式服務,那么你怎么理解分布式服務?
Dubbo和Spring Clound的區別,以及使用場景
講一下docker的實現原理,以及與JVM的區別
MongoDB、Redis和Memcached的應用場景,各自優勢
MongoDB有事務嗎?
Redis說一下sorted set底層原理
講講Netty為什么并發高,相關的核心組件有哪些?
完整的畫一個分布式集群部署圖,從負載均衡到后端數據庫集群
分布式鎖的方案,Redis和Zookeeper哪個好,如果是集群部署,高并發情況下哪個性能更好?
分布式系統的全局id如何實現?
數據庫萬級變成億級,你如何來解決?
常見的服務器雪崩是由什么引起的,如何來防范?
異地容災怎么實現?
常用的高并發技術解決方案有哪些,以及對應的解決步驟?
一面:
hashmap,怎么擴容,怎么處理數據沖突?怎么高效率的實現數據遷移?
Linux的共享內存如何實現,大概說了一下
socket網絡編程,說一下TCP的三次握手和四次揮手
同步IO和異步IO的區別?
Java GC機制?GC Roots有哪些?
紅黑樹講一下,五個特性,插入刪除操作,時間復雜度?
快排的時間復雜度,最壞情況呢,最好情況呢,堆排序的時間復雜度呢,建堆的復雜度是多少?
自我介紹,主要講講做了什么和擅長什么
設計模式了解哪些?
AtomicInteger怎么實現原子修改的?
ConcurrentHashMap 在Java7和Java8中的區別?為什么Java8并發效率更好?什么情況下用HashMap,什么情況用ConcurrentHashMap?
redis數據結構?
redis數據淘汰機制?
mysql實現事務的原理(MVCC)
MySQL數據主從同步是如何實現的?
MySQL索引的實現,innodb的索引,b+樹索引是怎么實現的,為什么用b+樹做索引節點,一個節點存了多少數據,怎么規定大小,與磁盤頁對應?
如果Redis有1億個key,使用keys命令是否會影響線上服務?
Redis的持久化方式,aod和rdb,具體怎么實現,追加日志和備份文件,底層實現原理的話知道么?
遇到最大困難是什么?怎么克服?
未來的規劃是什么?
你想問我什么?
自我介紹
項目介紹
Redis介紹
了解redis源碼么?
了解redis集群么?
Hashmap的原理,增刪的情況后端數據結構如何位移?
hashmap容量為什么是2的冪次?
hashset的源碼
object類你知道的方法
hashcode和equals
你重寫過hashcode和equals么,要注意什么?
假設現在一個學生類,有學號和姓名,我現在hashcode方法重寫的時候,只將學號參與計算,會出現什么情況?
往set里面put一個學生對象,然后將這個學生對象的學號改了,再put進去,可以放進set么?并講出為什么
Redis的持久化?有哪些方式,原理是什么?
講一下穩定的排序算法和不穩定的排序算法
講一下快速排序的思想
自我介紹
講一下數據的acid
什么是一致性?
什么是隔離性?
Mysql的隔離級別
每個隔離級別是如何解決?
Mysql要加上nextkey鎖,語句該怎么寫?
Java的內存模型,垃圾回收
線程池的參數
每個參數解釋一遍
然后面試官設置了每個參數,給了是個線程,讓描述出完整的線程池執行的流程
Nio和IO有什么區別
Nio和aio的區別
Spring的aop怎么實現
Spring的aop有哪些實現方式
動態代理的實現方式和區別
Linux了解么?
怎么查看系統負載?
Cpu load的參數如果為4,描述一下現在系統處于什么情況
Linux,查找磁盤上最大的文件的命令
Linux,如何查看系統日志文件
手撕算法:leeetcode原題 22,Generate Parentheses,給定 n 對括號,請寫一個函數以將其生成新的括號組合,并返回所有組合結果。
三面沒怎么問技術,問了很多技術管理方面的問題。
自我介紹
項目介紹
怎么管理項目成員?
當意見不一致時,如何溝通并說服開發成員,并舉個例子
怎么保證項目的進度?
數據庫的索引原理
非聚簇索引和聚簇索引
索引的使用注意事項
聯合索引
從底層解釋最左匹配原則
Mysql對聯合索引有優化么?會自動調整順序么?哪個版本開始優化?
Redis的應用
Redis的持久化的方式和原理
技術選型,一個新技術和一個穩定的舊技術,你會怎么選擇,選擇的考慮有哪些
說你印象最深的美團點評技術團隊的三篇博客
最近在學什么新技術?
你是怎么去接觸一門新技術的?
會看哪些書?
怎么選擇要看的書?
一面(基礎面:約1小時)
自我介紹,主要講講做了什么和擅長什么
springmvc和spring-boot區別
@Autowired的實現原理
Bean的默認作用范圍是什么?其他的作用范圍?
索引是什么概念有什么作用?MySQL里主要有哪些索引結構?哈希索引和B+樹索引比較?
Java線程池的原理?線程池有哪些?線程池工廠有哪些線程池類型,及其線程池參數是什么?
hashmap原理,處理哈希沖突用的哪種方法?
還知道什么處理哈希沖突的方法?
Java GC機制?GC Roots有哪些?
Java怎么進行垃圾回收的?什么對象會進老年代?垃圾回收算法有哪些?為什么新生代使用復制算法?
HashMap的時間復雜度?HashMap中Hash沖突是怎么解決的?鏈表的上一級結構是什么?Java8中的HashMap有什么變化?紅黑樹需要比較大小才能進行插入,是依據什么進行比較的?其他Hash沖突解決方式?
hash和B+樹的區別?分別應用于什么場景?哪個比較好?
項目里有個數據安全的,aes和md5的區別?詳細點
自我介紹
為什么MyISAM查詢性能好?
事務特性(acid)
隔離級別
SQL慢查詢的常見優化步驟?
說下樂觀鎖,悲觀鎖(select for update),并寫出sql實現
TCP協議的三次握手和四次揮手過程?
用到過哪些rpc框架
數據庫連接池怎么實現
Java web過濾器的生命周期
自我介紹
ConcurrentHashMap 在Java7和Java8中的區別?為什么Java8并發效率更好?什么情況下用HashMap,什么情況用ConcurrentHashMap?
加鎖有什么機制?
ThreadLocal?應用場景?
數據庫水平切分,垂直切分的設計思路和切分順序
Redis如何解決key沖突?
soa和微服務的區別?
單機系統演變為分布式系統,會涉及到哪些技術的調整?請從前面負載到后端詳細描述
設計一個秒殺系統?
1.你自己最大優勢和劣勢是什么 2.平時遇見過什么樣的挑戰,怎么去克服的 3.工作中遇見了技術解決不了的問題,你的應對思路? 4.你的興趣愛好? 5.未來的職業規劃是什么?
頭條Java后臺3面 頭條一面
1.講講jvm運行時數據庫區 2.講講你知道的垃圾回收算法 3.jvm內存模型jmm 4.內存泄漏與內存溢出的區別 5.select、epool 的區別?底層的數據結構是什么? 6.mysql數據庫默認存儲引擎,有什么優點 7.優化數據庫的方法,從sql到緩存到cpu到操作系統,知道多少說多少 8.什么情景下做分表,什么情景下做分庫 9.linkedList與arrayList區別 適用場景 10.array list是如何擴容的 11.volatile 關鍵字的作用?Java 內存模型? 12.java lock的實現,公平鎖、非公平鎖 13.悲觀鎖和樂觀鎖,應用中的案例,mysql當中怎么實現,java中的實現 頭條二面
Java 內存分配策略?多個線程同時請求內存,如何分配?
Redis 底層用到了哪些數據結構?使用 Redis 的 set 來做過什么?
Redis 使用過程中遇到什么問題?搭建過 Redis 集群嗎?
如何分析“慢查詢”日志進行 SQL/索引 優化?
MySQL 索引結構解釋一下?(B+ 樹)
MySQL Hash 索引適用情況?舉下例子?
如何保證數據庫與redis緩存一致的
Redis 的并發競爭問題是什么?如何解決這個問題?了解 Redis 事務的 CAS 方案嗎?
如何保證 Redis 高并發、高可用?
Redis 的主從復制原理,以及Redis 的哨兵原理?
如果讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路。
MySQL數據庫主從同步怎么實現?
秒殺模塊怎么設計的,如何壓測,抗壓手段?
今日頭條Java后臺研發三面
一面
concurrent包下面用過哪些?
countdownlatch功能實現
synchronized和lock區別,重入鎖
thread和runnable的區別
AtomicInteger實現原理(CAS自旋)
java并發sleep與wait、notify與notifyAll的區別
如何實現高效的同步鏈表
java都有哪些加鎖方式(synchronized、ReentrantLock、共享鎖、讀寫鎖等)
設計模式(工廠模式、單例模式(幾種情況)、適配器模式、裝飾者模式)
maven依賴樹,maven的依賴傳遞,循環依賴
synchronized和reentrantLock的區別,synchronized用在代碼快、方法、靜態方法時鎖的都是什么?
介紹spring的IOC和AOP,分別如何實現(classloader、動態代理)
JVM的內存布局以及垃圾回收原理及過程講一下,講一下CMS垃圾收集器垃圾回收的流程,以及CMS的缺點
redis如何處理分布式服務器并發造成的不一致
OSGi的機制
spring中bean加載機制,bean生成的具體步驟,ioc注入的方式
spring何時創建applicationContext
listener是監聽哪個事件?
介紹ConcurrentHashMap原理,用的是哪種鎖,segment有沒可能增大?
解釋mysql索引、b樹,為啥不用平衡二叉樹、紅黑樹
Zookeeper如何同步配置
Java線程池ThreadPoolEcecutor參數,基本參數,使用場景
MySQL的ACID講一下,延伸到隔離級別
dubbo的實現原理,說說RPC的要點
GC停頓原因,如何降低停頓?
JVM如何調優、參數怎么調?
如何用工具分析jvm狀態(visualVM看堆中對象的分配,對象間的引用、是否有內存泄漏,jstack看線程狀態、是否死鎖等等)
描述一致性hash算法(Redis)
分布式雪崩場景如何避免?
再談談消息隊列
福利 掃描添加小編微信,備注“姓名+公司職位”,入駐【CSDN博客】,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
總結
以上是生活随笔為你收集整理的百度现场面试:JVM+算法+Redis+数据库!(三面)| CSDN博文精选的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亚信安全发布“安全定义边界”2020发展
- 下一篇: linux cmake编译源码,linu