2020_java面試

記錄一下最近面試接觸的面試題。html

貨拉拉:

  1. jdk與jre區別
  2. java數據結構
  3. 舉例隊列的使用場景
  4. list,set,map區別
  5. 有沒有了解雙列結構
  6. map用過哪些
  7. concurrentHashmap 底層實現,存的數據元素是什麼
  8. 何時轉換成紅黑樹,什麼版本才轉換成紅黑樹,何時是鏈表
  9. 除了concurrentHashmap還用過其餘併發類
  10. 日常使用過什麼鎖
  11. volatile原理
  12. 有沒有使用過threadlocal,怎麼用的
  13. 攔截器和過濾器區別
  14. 內存溢出,內存泄漏以及各類場景
  15. jvm內存區域
  16. new string對象是存放在哪
  17. 線程的靜態變量從哪裏取的
  18. 發生內存泄漏,線上比較卡頓,怎麼處理?
  19. 堆棧滿了,如何定位問題
  20. 介紹項目
  21. 上家離職緣由
  22. 項目細節
  23. rocketmq、kafka、rabbitmq選型
  24. 從哪些社區學習
  25. 有沒有用過mybatis-plus,爲何要用
  26. sql優化
  27. 主從配置
  28. 灰度發佈怎麼實現
  29. 網關選型
  30. gateway和zuul區別
  31. gateway爲何高性能
  32. netty爲何高性能
  33. BIO 和NIO、AIO區別
  34. 瞭解哪些網絡協議
  35. websocket原理
  36. mybatis #和$區別,$的場景

深圳掌衆傳媒:

  1. union 和union all區別
    union:對兩個結果集進行並集操做,不包括重複行,同時進行默認規則的排序;
    union All:對兩個結果集進行並集操做,包括重複行,不進行排序。
  2. JDK1.8默認的垃圾回收器
    默認使用的是UseParallelGC,ParallelGC 默認的是 Parallel Scavenge(新生代)+ Parallel Old(老年代)
  3. varchar類型的時間字段,進行按月統計
    使用DATE_FORMAT函數,DATE_FORMAT支持date類型和字符串類型的時間格式轉換,示例: SELECT DATE_FORMAT(t.time,'%Y年%m月') month,count(*) FROM test t GROUP BY month
  4. truncate和delete的區別
    truncate和delete的區別
  5. JDBC如何開啓事務
    Connection對象:
    setAutoCommit(boolean):設置是否爲自動提交事務,若是true(默認值就是true)表示自動提交,也就是每條執行的SQL語句就是一個單獨的事務,若是設置false,那麼就至關於開啓了事務;con.setAutoCommit(false)表示開啓事務
    commit():提交結束事務;
    rollback():回滾結束事務。

深圳新樂數碼:

  1. mysql大數據表怎麼加索引
    找大佬諮詢後的解決方案爲:經過新增表將數據遷移過去,再更改表名。java

  2. mysql經常使用函數
    mysql經常使用函數mysql

  3. 什麼是mysql回表
    MySQL中的回表查詢與索引覆蓋git

  4. mysql隔離性
    READ-UNCOMMITTED(讀取未提交): 最低的隔離級別,容許讀取還沒有提交的數據變動,可能會致使髒讀、幻讀或不可重複讀。
    READ-COMMITTED(讀取已提交): 容許讀取併發事務已經提交的數據,能夠阻止髒讀,可是幻讀或不可重複讀仍有可能發生。
    REPEATABLE-READ(可重複讀): 對同一字段的屢次讀取結果都是一致的,除非數據是被自己事務本身所修改,能夠阻止髒讀和不可重複讀,但幻讀仍有可能發生。
    SERIALIZABLE(可串行化): 最高的隔離級別,徹底服從ACID的隔離級別。全部的事務依次逐個執行,這樣事務之間就徹底不可能產生干擾,也就是說,該級別能夠防止髒讀、不可重複讀以及幻讀。web

  5. redis主從複製怎麼實現
    Redis實現主從複製面試

  6. nio是什麼
    什麼是NIO?NIO的原理是什麼機制?redis

  7. netty bytebuf做用,零拷貝
    netty中的ByteBuf深刻理解Linux, NIO和Netty中的零拷貝(Zero-Copy)spring

  8. mogodb用來作什麼,原理是什麼sql

  9. 堆溢出和棧溢出
    堆溢出:程序運行所須要的內存大於系統的堆最大內存(-Xmx),就會出現堆溢出問題
    棧溢出:a、線程請求的棧深度大於虛擬機容許的最大深度 StackOverflowError
    b、虛擬機在擴展棧深度時,沒法申請到足夠的內存空間 OutOfMemoryError
    內存溢出:申請內存空間,超出最大堆內存空間。
    內存泄露:其實包含內存溢出,堆內存空間被無用對象佔用沒有及時釋放,致使佔用內存,最終致使內存泄露。websocket

  10. zuul自身負載均衡原理
    ??暫時沒有找到資料,通常zuul內部集成了ribbon,使用的是ribbon提供的負載均衡,面試官否認了這個回答,說ribbon是客戶端負載均衡,問題答案待補充

  11. 客戶端負載均衡和服務端負載均衡區別
    客戶端負載均衡和服務端負載均衡區別

  12. dubbo和springcloud區別
    dubbo和springcloud區別

  13. rocketmq原理
    Rocketmq原理&最佳實踐

  14. rocketmq怎麼保證消息不丟失,消費順序
    RocketMQ 怎麼保證的消息不丟失?阿里RocketMQ如何解決消息的順序和重複兩大硬傷

  15. jvm實際使用
    應該指的是jvm調優,JVM性能調優

  16. 線程池重要參數,飽和策略
    線程池重要參數詳解

  17. redis的哈希和hashmap有什麼區別

  18. 類初始化的方式

  19. 類加載機制

  20. jvm內存模型

  21. mysql事務

  22. mysql樂觀鎖和悲觀鎖

  23. 講一下項目的難點以及解決方式

  24. spring循環依賴解決

行雲全球匯

  1. 項目有沒有使用分佈式配置中心
  2. 主要負責的項目以及功能
  3. 微服務項目有沒有分層,領域層、服務層,應用層?
  4. 4.1 假設商品服務、用戶服務,它們之間怎麼調用?
    4.2 一個業務既要更新商品服務、又要更新用戶服務怎麼處理(分佈式事務)?
    4.3 更新過程當中用戶服務掛了怎麼處理?
    4.4 有一個商品列表須要查詢用戶系統用戶的名字,怎麼處理?
    4.5 若是有關鍵詞搜索涉及到兩個服務,該怎麼處理?

mysql:

  1. 1.1 left join ... on ... where ,條件加載on後面和where後面結果集有什麼區別?
    1.2 inner join .. on ... where,條件加載on後面和where後面結果集有什麼區別?
  2. 2.1 有一張表兩個字段:id、age,數據:1 1, 2 21,3 null,4 1, count(id),count(*),count(age) 分別是什麼值?
    2.2 sum(age)值是什麼(面試官說MySQL5.6版本,sum函數字段有一個爲null,結果就是null,後續版本有修復,本人測試Mysql5.5以及5.6都沒有出現這種狀況),
    2.3 select null + 1 結果是什麼
  3. 3.1 一張一千萬數據的表,limit 0,100 order by id和 limit 5000000,100 order by id 性能上有什麼區別,會不會查不出來?
    3.2 用java代碼將這張千萬數據的表複製到另外一張表,每次複製100條,怎麼優化?(將上次的id保存起來,where id > 上次的id,limit 0,100)

mybatis:

  1. #$ 符號,在xml裏面動態拼接一個表名,應該用哪一個?
  2. mybatis dao層方法能不能重載?

java:

  1. 定義一個Map<String,Integer>變量,它的value會不會存在一個值:張三?
  2. @Transactional, 2.1 默認狀況全部異常都會回滾嗎? 2.2 狀況一:一個事務A用REQUIRED,內部調用一個事務B,事務B也用REQUIRED;狀況二:一個事務A用REQUIRED,內部調用一個事務B,事務B用的NESTED(嵌套事務), 這兩種有什麼區別?若是在狀況二進行手動回滾事務,這兩種又有什麼區別?
相關文章
相關標籤/搜索