【BAT面試寶典】Java架構師,必須掌握的10大基本技能!

Java基礎

  • 多線程:創建與使用、線程同步與鎖、線程池等的掌握
  • JVM:你只有深入理解虛擬機的內存回收機制,才能正確使用JVM性能調優
  • 掌握NIO,以及對應NIO框架Netty
  • Java併發包(java.util.concurrent)下的工具包:AtomicInteger等原子操作類,基於AQS鎖:
    • ReentrantLock
    • Semaphore
    • CountDownLatch
    • ReentrantReadWriteLock
    • SynchronousQueue
    • FutureTask

數據結構與算法

  • 常見的數據結構:數組、鏈表、堆與棧、哈希表等
  • 算法思想:遞推、窮舉、貪心等
  • 經典排序算法:排序、查找

常用的設計模式

  • 創建型:工廠方法、抽象工廠、單例模式
  • 結構型:裝飾模式、外觀模式、組合模式
  • 行爲模式:策略模式、觀察者模式
  • 軟件設計原則:接口隔離、單一職責等原則

開發框架

  • 分庫分表框架:tddl、cobar、mycat的選型與使用
  • 服務化:Dubbo、gRPC、Spring Cloud、Spring Cloud alibaba(阿里基於Spring Cloud開源實現,微服務架構推薦使用)
  • 負載均衡:LVS、Nginx、HAProxy
  • 緩存:Redis、Memcached
  • 搜索與數據分析:Elasticsearch、ELK
  • 消息隊列:RabbitMQ、Kafka、RocketMQ
  • 容器:docker、k8s
  • 分佈式註冊中心:zookeeper、nacos阿里開源推薦使用)、ETCD、Consul
  • 高性能NIO網絡通信框架 Netty

數據存儲

  • MySQL數據庫更多是需要掌握事務、鎖、索引、性能優化,以及如何配合NoSQL(mongodb\redis)選型使用。
  • 分佈式數據庫的存儲、查詢
  • 分佈式事務
  • 分佈式全局ID設計

常用構建工具

  • Maven/gradle 管理項目的構建、打包、測試、發佈
  • git/svn 源碼版本管理
  • Nexus 類庫私服管理
  • Jenkins 自動化部署工具
  • SonarQube 代碼質量檢查工具

分佈式架構

  • 分佈式鎖
  • 分佈式事務
  • 分佈式數據存儲,全局唯一ID實現
  • 分佈式架構的數據一性性、可用性、容錯易用性(CAP),在CAP中只能滿足CP或AP原則的理解及實施;
  • 海量數據遷移技術;
  • 服務熔斷、限流、降級
  • 服務發現與治理
  • 服務的負載
  • 服務的網關
  • 服務的安全

Linux常用功能

find、grep、ps、cp、move、tar、head、tail、netstat、lsof、tree、wget、curl、ping、ssh、echo、free、top

性能調優

  • JVM性能調優
  • Mysql性能調優
  • Tomcat性能調優
  • Nginx 性能調優
  • redis 性能調優
  • elasticsearch 性能調優

網絡安全

  • XSS
    • XSS的防禦
    • CSRF
  • 注入攻擊
    • SQL注入
    • XML注入
    • CRLF注入
    • 文件上傳漏洞
  • 加密與解密
    • 對稱加密
    • 非對稱加密
    • 哈希算法
    • 加鹽哈希算法
    • 加密算法(MD5,SHA1、DES、AES、RSA、DSA)
  • 彩虹表
    • DDOS攻擊
    • DOS攻擊
    • DDOS攻擊
      memcached爲什麼可以導致DDos攻擊
  • 什麼是反射型DDoS
    如何通過Hash碰撞進行DOS攻擊
  • SSL、TLS,HTTPS
  • 脫庫、洗庫、撞庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章