1. 程式人生 > 其它 >java後端開發工程師面試題,程式設計+Java+Web+資料庫+框架+分散式

java後端開發工程師面試題,程式設計+Java+Web+資料庫+框架+分散式

前言

關於技術人如何成長的問題,一直以來都備受關注,因為程式設計師職業發展很快,即使是相同起點的人,經過幾年的工作或學習,會迅速拉開極大的差距,所以技術人保持學習,提升自己,才能夠扛得住不斷上趕的後浪,也不至於被“拍死”在沙灘上。

近日,經過一朋友的透露,Alibaba也首發了一份限量的“Java成長筆記”,裡面記載的知識點非常齊全,看完之後才知道,差距真的不止一點點!

Java成長筆記主要是將Java程式設計師按照年限來進行分層,清晰的標註著Java程式設計師應該按照怎樣的路線來提升自己,需要去學習哪些技術點。

下面會介紹這份Java成長筆記的主要內容涵蓋的知識點,由於文章篇幅,所以只展示了截圖內容,完整版免費獲取方式在文末!

Java基礎

1.JAVA 中的幾種資料型別是什麼,各自佔用多少位元組。

2.String 類能被繼承嗎,為什麼。

3. 兩個物件的 hashCode() 相同,則 equals() 也一定為 true,對嗎?

4. String 屬於基礎的資料型別嗎?

5.Java 中操作字串都有哪些類?它們之間有什麼區別?

6.Java 中 IO 流分為幾種?

7.BIO、NIO、AIO 有什麼區別?

8.用過哪些 Map 類,都有什麼區別,HashMap 時執行緒安全的嗎,併發下使用的 Map 是什麼,他們的內部原理分別是什麼,比如儲存方法,hashcode,擴容,預設容量等。

9. 如何將字串反轉?

10.抽象類必須要有抽象方法嗎?

11.普通類和抽象類有哪些區別?

12.抽象類能使用 final 修飾嗎?

13.ArrayList 和 LinkedList 有什麼區別?

14.ConcurrentHashMap的資料結構(必考)

15.volatile作用(必考)

16.Atomic類如何保證原子性(CAS操作)(必考)

17.為什麼要使用執行緒池(必考)

Redis

  • Redis的應用場景
  • Redis支援的資料型別(必考)
  • zset跳錶的資料結構(必考)
  • Redis的資料過期策略(必考)
  • Redis的LRU過期策略的具體實現
  • 如何解決Redis快取雪崩,快取穿透問題
  • Redis的持久化機制(必考)
  • Redis為什麼是單執行緒的?
  • 什麼是快取穿透?怎麼解決?
  • Redis持久化有幾種方式?
  • Redis為什麼這麼快?(必考)
  • Redis怎麼實現分散式鎖?
  • Redis如何做記憶體優化?
  • Redis淘汰策略有哪些?
  • Redis常見的效能問題有哪些?該如何解決?
  • Redis的使用要注意什麼?

ZooKeeper

  • CAP定理
  • ZAB協議
  • leader選舉演算法和流程
  • zookeeper 是什麼?
  • zookeeper 有幾種部署模式?
  • zookeeper 怎麼保證主從節點的狀態同步?

Mysql

  • 事務的基本要素* 事務隔離級別(必考)
  • 如何解決事務的併發問題(髒讀,幻讀)(必考)
  • MVCC多版本併發控制(必考)
  • binlog,redolog,undolog都是什麼,起什麼作用
  • InnoDB的行鎖/表鎖* myisam和innodb的區別,什麼時候選擇myisam
  • 為什麼選擇B+樹作為索引結構(必考)
  • 索引B+樹的葉子節點都可以存哪些東西(必考)
  • 查詢在什麼時候不走(預期中的)索引(必考)
  • sql如何優化* explain是如何解析sql的* order by原理

JVM

  • 執行時資料區域(記憶體模型)(必考)
  • 垃圾回收機制(必考)
  • 垃圾回收演算法(必考)
  • Minor GC和Full GC觸發條件
  • GC中Stop the world(STW)
  • 各垃圾回收器的特點及區別
  • 雙親委派模型
  • JDBC和雙親委派模型關係
  • JVM 中一次完整的 GC 流程是什麼樣子的,物件如何晉升到老年代,說說你知道的幾種主要的 JVM 引數

Spring

  • Spring的IOC/AOP的實現(必考)
  • 動態代理的實現方式(必考)
  • Spring如何解決迴圈依賴(三級快取)(必考)
  • Spring的後置處理器
  • Spring的@Transactional如何實現的(必考)
  • Spring的事務傳播級別* BeanFactory和ApplicationContext的聯絡和區別

其他

  • 高併發系統的限流如何實現
  • 高併發秒殺系統的設計
  • 負載均衡如何設計

作業系統篇

  • 程序和執行緒的區別
  • 程序同步的幾種方式
  • 執行緒間同步的方式
  • 什麼是緩衝區溢位。有什麼危害,其原因是什麼
  • 程序中有哪幾種狀態
  • 分頁和分段有什麼區別

多執行緒篇

  • 多執行緒的幾種實現方式,什麼是執行緒安全
  • volatile 的原理,作用,能代替鎖嗎?
  • sleep 和 wait 的區別
  • sleep(0)的意義
  • Lock 和 Synchronized 的區別
  • synchronized 的原理是什麼,一般用在什麼地方(比如載入靜態方法和非靜態方法的區別)

最後

這份文件從構建一個鍵值資料庫的關鍵架構入手,不僅帶你建立起全域性觀,還幫你迅速抓住核心主線。除此之外,還會具體講解資料結構、執行緒模型、網路框架、持久化、主從同步和切片叢集等,幫你搞懂底層原理。相信這對於所有層次的Redis使用者都是一份非常完美的教程了。

整理不易,覺得有幫助的朋友可以幫忙點贊分享支援一下小編~

你的支援,我的動力;祝各位前程似錦,offer不斷!!!