以下是2019年的一次騰訊公司的面試題目,分享給大家,希望能對大家有幫助。
(推薦影片教學:java教學影片)
- 從履歷項目⽬中選⼀個項⽬,說說你在其中遇到了什麼重⼤挑戰?以及你的解決問題的思路?
- ⼀段程式碼要執⾏多個redis指令,不加鎖的情況下如何保證原⼦性?
使⽤lua腳本:https://segmentfault.com/a/1190000009811453 - 談談資料結構,⽐如⼆叉樹、紅⿊樹?
理解這篇:https://juejin.im/post/5a27c6946fb9a04509096248 - 說B-tree、B tree的區別和使⽤場景?
- B-tree:
B-tree 利⽤了磁碟區塊的特性進⾏建構的樹。每個磁碟塊⼀個節點,每個節點包含了很關鍵字。把樹的節點關鍵字增多後樹的
層級⽐原來的⼆叉樹少了,減少資料查找的次數和複雜度。
B-tree巧妙利⽤了磁碟預讀原理,將⼀個節點的⼤⼩設為等於⼀個⻚(每⻚為4K),這樣每個節點只需要⼀次I/O就可以完
全載⼊。
B-tree 的資料可以存在任何節點中。 - B tree:
B tree 是 B-tree 的變種,B tree 資料只儲存在葉⼦節點中。這樣在B樹的基礎上每個節點儲存的關鍵字數更多,樹的層級
更少所以查詢資料更快,所有指關鍵字指標都存在葉⼦節點,所以每次查找的次數都相同所以查詢速度更穩定; - mysql哪個版本哪個儲存引擎的索引使⽤的B tree,為什麼不使⽤紅⿊樹?
需要先理解B tree、紅⿊樹的實作原理。 B tree帶有順序存取指針,是紅⿊樹不具備的。 - 說說⼏種常⻅的訊息中間件的差別?
- 中⼩型公司⾸選RabbitMQ:管理界⾯簡單,⾼並發。
- 更多相關面試題推薦:java面試題及答案
- ⼤型公司可以選擇RocketMQ:更⾼並發,可對rocketmq進⾏客製化開發。
- ⽇志採集功能,⾸選kafka,專為⼤資料準備。
- rabbitmq如何保證訊息的可靠性?
詳⻅「⾯試題庫/rabbitmq」 - springcloud服務發現原理?
a. 每30s發送⼼跳檢測重新進⾏租約,如果客戶端不能多次更新租約,它將在90s內從伺服器註冊中⼼移除。
a. 註冊資訊和更新會被複製到其他Eureka 節點,來⾃任何區域的客戶端可以查找到註冊中⼼信息,每30s發⽣⼀次複製來定位他們的服務,並進⾏遠程調⽤ 。
b. 客戶端還可以快取⼀些服務實例訊息,所以即使Eureka全掛掉,客戶端也是可以定位到服務位址的。 - 介紹下springcloud各個元件? springcloud的註冊中⼼除了eureka還可以⽤什麼?
springcloud的⼯作原理
特性ActiveMQ RabbitMQ RocketMQ kafka
開發語⾔ java erlang java scala
單機吞吐量萬級萬級10萬級10萬級
# 時效性ms級## 單機吞吐量萬級萬級10萬級10萬級
#us級ms級ms級以內
可⽤性⾼(主從架構) ⾼(主從架構) ⾮常⾼(分散式架構) ⾮常⾼(分散式架構)
功能特性
成熟的產品,在許多公司得到應⽤;有較多的⽂檔;各種協議⽀持較好
基於erlang開發,所以並發能⼒很強,性能極其好,延時很低;管理界⾯較豐富
MQ功能⽐較完備,擴展性佳
只⽀持主要的MQ功能,像⼀些訊息查詢,訊息回溯等功能沒有提供,畢竟是為⼤資料準備的,在⼤資料領域應⽤⼴。
springcloud由以下⼏個核⼼元件構成:
Eureka:各個服務啟動時,Eureka Client都會將服務註冊到Eureka Server,並且Eureka Client還可以反過來從Eureka Server拉取註冊表,從⽽知道其他服務在哪⾥
Ribbon:服務間發起請求的時候,基於Ribbon做負載平衡,從⼀個服務的多台機器中選擇⼀台
Feign:基於Feign的動態代理機制,根據註解和選擇的機器,拼接請求URL位址,發起請求
Hystrix:發起請求是透過Hystrix的執行緒池來⾛的,不同的服務⾛不同的執行緒池,實現了不同服務調⽤的隔離,避免了服務雪崩
的問題
Zuul:如果前端、行動端要調⽤後端系統,統⼀從Zuul⽹關進⼊,由Zuul⽹關轉發請求給對應的服務 註冊中⼼還可以⽤zookeeper。 -
微服務有⼏種限流⽅式? spring cloud gateway:https://windmt.com/2018/05/09/spring-cloud-15-spring-cloud-gateway-ratelimiter/ -
限流的情況下,服務隔離還有沒有必要? https://www.javazhiyin.com/25964.html -
dubbo有⼏種負載平衡?負載平衡是在服務端還是客戶端?
Dubbo負載平衡在客戶端,dubbo內建了4種負載平衡策略:
a. RandomLoadBalance:隨機負載平衡。隨機的選擇⼀個。是Dubbo的預設負載平衡策略。
b. RoundRobinLoadBalance:輪詢負載平衡。輪詢選擇⼀個。 ###c. LeastActiveLoadBalance:最少活躍調⽤數,相同活躍數的隨機。活躍數指調⽤前後計數差。讓慢的 Provider 收到更少請求,
因為越慢的 Provider 的調⽤前後計數差會越⼤。
d. ConsistentHashLoadBalance:⼀致性哈希負載平衡。相同參數的請求總是落在同⼀台機器上。 - 如何實作redis分散式鎖定?需要注意什麼問題?
了解這篇:https://juejin.im/post/5bbb0d8df265da0abd3533a5 - 說說你看過的原始碼?其中⽤到了什麼設計模式或設計亮點?
具體分析,⾯試前需要熟讀⼀些源碼,如spring源碼。 - 如何實作aop?項⽬中哪些地⽅⽤到了aop?
掌握:https://juejin.im/post/5bf4fc84f265da611b57f906 - 後置處理器的作⽤?
Spring中bean後置處理器BeanPostProcessor:https://www.jianshu.com/p/f80b77d65d39 - spring bean作⽤域,何時使⽤request作⽤域。
詳讀:https://blog.csdn.net/icarus_wang/article/details/51586776 - 說說下⾯這題的結果?
1 package com.giveu.web; 2 3 public class VolatileTest { 4 public static volatile int race = 0; 5 6 public static void increase() { 7 race++; 8 } 9 10 private static final int THREADS_COUNT = 10; 11 12 public static void main(String[] args) { 13 Thread[] threads = new Thread[THREADS_COUNT]; 14 for (int i = 0; i < THREADS_COUNT; i++) { 15 threads[i] = new Thread(new Runnable() { 16 @Override 17 public void run() { 18 for (int i = 0; i < 10000; i++) { 19 increase(); 20 } 21 } 22 }); 23 threads[i].start(); 24 } 25 while (Thread.activeCount() > 1) { 26 Thread.yield(); 27 } 28 System.out.println(race); 29 } 30
程式不結束,並且沒有列印。
相關推薦:java入門教學
以上是2019年Java面試題目(騰訊)的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
視覺化網頁開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中