首頁 > Java > Java面試題 > 2019年Java面試題目(騰訊)

2019年Java面試題目(騰訊)

王林
發布: 2020-12-03 16:33:12
轉載
2633 人瀏覽過

2019年Java面試題目(騰訊)

以下是2019年的一次騰訊公司的面試題目,分享給大家,希望能對大家有幫助。

(推薦影片教學:java教學影片

  1. 從履歷項目⽬中選⼀個項⽬,說說你在其中遇到了什麼重⼤挑戰?以及你的解決問題的思路?
  2. ⼀段程式碼要執⾏多個redis指令,不加鎖的情況下如何保證原⼦性?
    使⽤lua腳本:https://segmentfault.com/a/1190000009811453
  3. 談談資料結構,⽐如⼆叉樹、紅⿊樹?
    理解這篇:https://juejin.im/post/5a27c6946fb9a04509096248
  4. 說B-tree、B tree的區別和使⽤場景?
  5. B-tree:
    B-tree 利⽤了磁碟區塊的特性進⾏建構的樹。每個磁碟塊⼀個節點,每個節點包含了很關鍵字。把樹的節點關鍵字增多後樹的
    層級⽐原來的⼆叉樹少了,減少資料查找的次數和複雜度。
    B-tree巧妙利⽤了磁碟預讀原理,將⼀個節點的⼤⼩設為等於⼀個⻚(每⻚為4K),這樣每個節點只需要⼀次I/O就可以完
    全載⼊。
    B-tree 的資料可以存在任何節點中。
  6. B tree:
    B tree 是 B-tree 的變種,B tree 資料只儲存在葉⼦節點中。這樣在B樹的基礎上每個節點儲存的關鍵字數更多,樹的層級
    更少所以查詢資料更快,所有指關鍵字指標都存在葉⼦節點,所以每次查找的次數都相同所以查詢速度更穩定;
  7. mysql哪個版本哪個儲存引擎的索引使⽤的B tree,為什麼不使⽤紅⿊樹?
    需要先理解B tree、紅⿊樹的實作原理。 B tree帶有順序存取指針,是紅⿊樹不具備的。
  8. 說說⼏種常⻅的訊息中間件的差別?
  9. 中⼩型公司⾸選RabbitMQ:管理界⾯簡單,⾼並發。
  10. 更多相關面試題推薦:java面試題及答案
  11. ⼤型公司可以選擇RocketMQ:更⾼並發,可對rocketmq進⾏客製化開發。
  12. ⽇志採集功能,⾸選kafka,專為⼤資料準備。
  13. rabbitmq如何保證訊息的可靠性?
    詳⻅「⾯試題庫/rabbitmq」
  14. springcloud服務發現原理?
    a. 每30s發送⼼跳檢測重新進⾏租約,如果客戶端不能多次更新租約,它將在90s內從伺服器註冊中⼼移除。
    a. 註冊資訊和更新會被複製到其他Eureka 節點,來⾃任何區域的客戶端可以查找到註冊中⼼信息,每30s發⽣⼀次複製來定位他們的服務,並進⾏遠程調⽤ 。
    b. 客戶端還可以快取⼀些服務實例訊息,所以即使Eureka全掛掉,客戶端也是可以定位到服務位址的。
  15. 介紹下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⽹關轉發請求給對應的服務
  16. 註冊中⼼還可以⽤zookeeper。

  17. 微服務有⼏種限流⽅式?
  18. spring cloud gateway:https://windmt.com/2018/05/09/spring-cloud-15-spring-cloud-gateway-ratelimiter/

  19. 限流的情況下,服務隔離還有沒有必要?
  20. https://www.javazhiyin.com/25964.html

  21. dubbo有⼏種負載平衡?負載平衡是在服務端還是客戶端?
    Dubbo負載平衡在客戶端,dubbo內建了4種負載平衡策略:
    a. RandomLoadBalance:隨機負載平衡。隨機的選擇⼀個。是Dubbo的預設負載平衡策略。
    b. RoundRobinLoadBalance:輪詢負載平衡。輪詢選擇⼀個。 ###c. LeastActiveLoadBalance:最少活躍調⽤數,相同活躍數的隨機。活躍數指調⽤前後計數差。讓慢的 Provider 收到更少請求,
    因為越慢的 Provider 的調⽤前後計數差會越⼤。
    d. ConsistentHashLoadBalance:⼀致性哈希負載平衡。相同參數的請求總是落在同⼀台機器上。
  22. 如何實作redis分散式鎖定?需要注意什麼問題?
    了解這篇:https://juejin.im/post/5bbb0d8df265da0abd3533a5
  23. 說說你看過的原始碼?其中⽤到了什麼設計模式或設計亮點?
    具體分析,⾯試前需要熟讀⼀些源碼,如spring源碼。
  24. 如何實作aop?項⽬中哪些地⽅⽤到了aop?
    掌握:https://juejin.im/post/5bf4fc84f265da611b57f906
  25. 後置處理器的作⽤?
    Spring中bean後置處理器BeanPostProcessor:https://www.jianshu.com/p/f80b77d65d39
  26. spring bean作⽤域,何時使⽤request作⽤域。
    詳讀:https://blog.csdn.net/icarus_wang/article/details/51586776
  27. 說說下⾯這題的結果?
  28.   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.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板