鍘熸枃閾炬帴銆?/h4>鎺ㄨ崘:銆奐ava鎶€鏈功绫嶅ぇ鍏ㄣ€?-awesome-java-books浠庡垵绾у紑鍙戣€呭"/>

璧勬簮宸ュ叿鍒嗕韩锛堢1鏈燂級锛氬悗绔灦鏋勫笀鎶€鏈浘璋?/a>

Posted 宸ュ叿璧勬簮鍒嗕韩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了璧勬簮宸ュ叿鍒嗕韩锛堢1鏈燂級锛氬悗绔灦鏋勫笀鎶€鏈浘璋?/a>相关的知识,希望对你有一定的参考价值。

馃憤 馃憤 馃憤 鏇村绮惧僵鍐呭锛岀湅銆?a href="https://link.segmentfault.com/?url=https%3A%2F%2Fwww.yuque.com%2Fditiao-yscjm%2Ftwg5ov%2Fyx04p3" rel="nofollow">鍘熸枃閾炬帴銆?/h4>

鎺ㄨ崘: 銆奐ava鎶€鏈功绫嶅ぇ鍏ㄣ€?- awesome-java-books

浠庡垵绾у紑鍙戣€呭埌璧勬繁鏋舵瀯甯堬紝鐪嬭繖浜涗功灏卞浜?/p>

  • 鏁版嵁缁撴瀯

    • 闃熷垪
    • 闆嗗悎
    • 閾捐〃銆佹暟缁?/a>
    • 瀛楀吀銆佸叧鑱旀暟缁?/a>
    • 鏍?/a>
    • 鏍?/a>

      • 浜屽弶鏍?/a>
      • 瀹屽叏浜屽弶鏍?/a>
      • 骞宠 浜屽弶鏍?/a>
      • 浜屽弶鏌ユ壘鏍戯紙BST锛?/a>
      • 绾㈤粦鏍?/a>
      • B锛孊+锛孊*鏍?/a>
      • LSM 鏍?/a>
    • BitSet
  • 甯哥敤绠楁硶

    • 鎺掑簭銆佹煡鎵剧畻娉?/a>

      • 閫夋嫨鎺掑簭
      • 鍐掓场鎺掑簭
      • 鎻掑叆鎺掑簭
      • 蹇€熸帓搴?/a>
      • 褰掑苟鎺掑簭
      • 甯屽皵鎺掑簭
      • 鍫嗘帓搴?/a>
      • 璁℃暟鎺掑簭
      • 妗舵帓搴?/a>
      • 鍩烘暟鎺掑簭
      • 浜屽垎鏌ユ壘
      • Java 涓殑鎺掑簭宸ュ叿
    • 甯冮殕杩囨护鍣?/a>
    • 瀛楃涓叉瘮杈?/a>

      • KMP 绠楁硶
    • 娣卞害浼樺厛銆佸箍搴︿紭鍏?/a>
    • 璐績绠楁硶
    • 鍥炴函绠楁硶
    • 鍓灊绠楁硶
    • 鍔ㄦ€佽鍒?/a>
    • 鏈寸礌璐濆彾鏂?/a>
    • 鎺ㄨ崘绠楁硶
    • 鏈€灏忕敓鎴愭爲绠楁硶
    • 鏈€鐭矾寰勭畻娉?/a>
  • 骞跺彂

    • Java 骞跺彂
    • 澶氱嚎绋?/a>
    • 绾跨▼瀹夊叏
    • 涓€鑷存€с€佷簨鍔?/a>

      • 浜嬪姟 ACID 鐗规€?/a>
      • 浜嬪姟鐨勯殧绂荤骇鍒?/a>
      • MVCC
    • 閿?/a>

      • Java涓殑閿佸拰鍚屾绫?/a>
      • 鍏钩閿?& 闈炲叕骞抽攣
      • 鎮茶閿?/a>
      • 涔愯閿?& CAS
      • ABA 闂
      • CopyOnWrite瀹瑰櫒
      • RingBuffer
      • 鍙噸鍏ラ攣 & 涓嶅彲閲嶅叆閿?/a>
      • 浜掓枼閿?& 鍏变韩閿?/a>
      • 姝婚攣
  • 鎿嶄綔绯荤粺

    • 璁$畻鏈哄師鐞?/a>
    • CPU

      • 澶氱骇缂撳瓨
    • 杩涚▼
    • 绾跨▼
    • 鍗忕▼
    • Linux
  • 璁捐妯″紡

    • 璁捐妯″紡鐨勫叚澶у師鍒?/a>
    • 23绉嶅父瑙佽璁℃ā寮?/a>
    • 搴旂敤鍦烘櫙
    • 鍗曚緥妯″紡
    • 璐d换閾炬ā寮?/a>
    • MVC
    • IOC
    • AOP
    • UML
    • 寰湇鍔℃€濇兂

      • 搴峰▉瀹氬緥
  • 杩愮淮 & 缁熻 & 鎶€鏈敮鎸?/a>

    • 甯歌鐩戞帶
    • APM
    • 缁熻鍒嗘瀽
    • 鎸佺画闆嗘垚(CI/CD)

      • Jenkins
      • 鐜鍒嗙
    • 鑷姩鍖栬繍缁?/a>

      • Ansible
      • puppet
      • chef
    • 娴嬭瘯

      • TDD 鐞嗚
      • 鍗曞厓娴嬭瘯
      • 鍘嬪姏娴嬭瘯
      • 鍏ㄩ摼璺帇娴?/a>
      • A/B 銆佺伆搴︺€佽摑缁挎祴璇?/a>
    • 铏氭嫙鍖?/a>

      • KVM
      • Xen
      • OpenVZ
    • 瀹瑰櫒鎶€鏈?/a>

      • Docker
    • 浜戞妧鏈?/a>

      • OpenStack
    • DevOps
    • 鏂囨。绠$悊
  • 涓棿浠?/a>

    • Web Server

      • nginx
      • OpenResty
      • Tengine
      • Apache Httpd
      • Tomcat

        • 鏋舵瀯鍘熺悊
        • 璋冧紭鏂规
      • Jetty
    • 缂撳瓨

      • 鏈湴缂撳瓨
    • 瀹㈡埛绔紦瀛?/a>
    • 鏈嶅姟绔紦瀛?/a>

      • Web缂撳瓨
      • Memcached
      • Redis

        • 鏋舵瀯
        • 鍥炴敹绛栫暐
      • Tair
    • 娑堟伅闃熷垪

      • 娑堟伅鎬荤嚎
      • 娑堟伅鐨勯『搴?/a>
      • RabbitMQ
      • RocketMQ
      • ActiveMQ
      • Kafka
      • Redis 娑堟伅鎺ㄩ€?/a>
      • ZeroMQ
    • 瀹氭椂璋冨害

      • 鍗曟満瀹氭椂璋冨害
      • 鍒嗗竷寮忓畾鏃惰皟搴?/a>
    • RPC

      • Dubbo
      • Thrift
      • gRPC
    • 鏁版嵁搴撲腑闂翠欢

      • Sharding Jdbc
    • 鏃ュ織绯荤粺

      • 鏃ュ織鎼滈泦
    • 閰嶇疆涓績
    • API 缃戝叧
  • 缃戠粶

    • 鍗忚

      • OSI 涓冨眰鍗忚
      • TCP/IP
      • HTTP
      • HTTP2.0
      • HTTPS
    • 缃戠粶妯″瀷

      • Epoll
      • Java NIO
      • kqueue
    • 杩炴帴鍜岀煭杩炴帴
    • 妗嗘灦
    • 闆舵嫹璐濓紙Zero-copy锛?/a>
    • 搴忓垪鍖?浜岃繘鍒跺崗璁?

      • Hessian
      • Protobuf
  • 鏁版嵁搴?/a>

    • 鍩虹鐞嗚

      • 鍏崇郴鏁版嵁搴撹璁$殑涓夊ぇ鑼冨紡
    • mysql

      • 鍘熺悊
      • InnoDB
      • 浼樺寲
      • 绱㈠紩

        • 鑱氶泦绱㈠紩, 闈炶仛闆嗙储寮?/a>
        • 澶嶅悎绱㈠紩
        • 鑷€傚簲鍝堝笇绱㈠紩(AHI)
      • explain
    • NoSQL

      • MongoDB
      • Hbase
  • 鎼滅储寮曟搸

    • 鎼滅储寮曟搸鍘熺悊
    • Lucene
    • Elasticsearch
    • Solr
    • sphinx
  • 鎬ц兘

    • 鎬ц兘浼樺寲鏂规硶璁?/a>
    • 瀹归噺璇勪及
    • CDN 缃戠粶
    • 杩炴帴姹?/a>
    • 鎬ц兘璋冧紭
  • 澶ф暟鎹?/a>

    • 娴佸紡璁$畻

      • Storm
      • Flink
      • Kafka Stream
      • 搴旂敤鍦烘櫙
    • Hadoop

      • HDFS
      • MapReduce
      • Yarn
    • Spark
  • 瀹夊叏

    • web 瀹夊叏

      • XSS
      • CSRF
      • SQL 娉ㄥ叆
      • Hash Dos
      • 鑴氭湰娉ㄥ叆
      • 婕忔礊鎵弿宸ュ叿
      • 楠岃瘉鐮?/a>
    • DDoS 闃茶寖
    • 鐢ㄦ埛闅愮淇℃伅淇濇姢
    • 搴忓垪鍖栨紡娲?/a>
    • 鍔犲瘑瑙e瘑

      • 瀵圭О鍔犲瘑
      • 鍝堝笇绠楁硶
      • 闈炲绉板姞瀵?/a>
    • 鏈嶅姟鍣ㄥ畨鍏?/a>
    • 鏁版嵁瀹夊叏

      • 鏁版嵁澶囦唤
    • 缃戠粶闅旂

      • 鍐呭缃戝垎绂?/a>
      • 鐧诲綍璺虫澘鏈?/a>
    • 鎺堟潈銆佽璇?/a>

      • RBAC
      • OAuth2.0
      • OIDC
      • SAML
      • 鍙屽洜绱犺璇侊紙2FA锛?/a>
      • 鍗曠偣鐧诲綍(SSO)
  • 甯哥敤寮€婧愭鏋?/a>

    • 寮€婧愬崗璁?/a>
    • 鏃ュ織妗嗘灦

      • Log4j銆丩og4j2
      • Logback
    • ORM
    • 缃戠粶妗嗘灦
    • Web 妗嗘灦

      • Spring 瀹舵棌
    • 宸ュ叿妗嗘灦
  • 鍒嗗竷寮忚璁?/a>

    • 鎵╁睍鎬ц璁?/a>
    • 绋冲畾鎬?& 楂樺彲鐢?/a>

      • 纭欢璐熻浇鍧囪 
      • 杞欢璐熻浇鍧囪 
      • 闄愭祦
      • 搴旂敤灞傚鐏?/a>
      • 璺ㄦ満鎴垮鐏?/a>
      • 瀹圭伨婕旂粌娴佺▼
      • 骞虫粦鍚姩
    • 鏁版嵁搴撴墿灞?/a>

      • 璇诲啓鍒嗙妯″紡
      • 鍒嗙墖妯″紡
    • 鏈嶅姟娌荤悊

      • 鏈嶅姟娉ㄥ唽涓庡彂鐜?/a>
      • 鏈嶅姟璺敱鎺у埗
    • 鍒嗗竷寮忎竴鑷?/a>

      • CAP 涓?BASE 鐞嗚
      • 鍒嗗竷寮忛攣
      • 鍒嗗竷寮忎竴鑷存€х畻娉?/a>

        • PAXOS
        • Zab
        • Raft
        • Gossip
        • 涓ら樁娈垫彁浜ゃ€佸闃舵鎻愪氦
      • 骞傜瓑
      • 鍒嗗竷寮忎竴鑷存柟妗?/a>
      • 鍒嗗竷寮?Leader 鑺傜偣閫変妇
      • TCC(Try/Confirm/Cancel) 鏌旀€т簨鍔?/a>
    • 鍒嗗竷寮忔枃浠剁郴缁?/a>
    • 鍞竴ID 鐢熸垚

      • 鍏ㄥ眬鍞竴ID
    • 涓€鑷存€ash绠楁硶
  • 璁捐鎬濇兂 & 寮€鍙戞ā寮?/a>

    • DDD(Domain-driven Design - 棰嗗煙椹卞姩璁捐)

      • 鍛戒护鏌ヨ鑱岃矗鍒嗙(CQRS)
      • 璐锛屽厖琛€妯″瀷
    • Actor 妯″紡
    • 鍝嶅簲寮忕紪绋?/a>

      • Reactor
      • RxJava
      • Vert.x
    • DODAF2.0
    • Serverless
    • Service Mesh
  • 椤圭洰绠$悊

    • 鏋舵瀯璇勫
    • 閲嶆瀯
    • 浠g爜瑙勮寖
    • 浠g爜 Review
    • RUP
    • 鐪嬫澘绠$悊
    • SCRUM
    • 鏁忔嵎寮€鍙?/a>
    • 鏋侀檺缂栫▼锛圶P锛?/a>
    • 缁撳缂栫▼
    • PDCA 寰幆璐ㄩ噺绠$悊
    • FMEA绠$悊妯″紡
  • 閫氱敤涓氬姟鏈
  • 鎶€鏈秼鍔?/a>
  • 鏀跨瓥銆佹硶瑙?/a>

    • 娉曞緥

      • 涓ユ牸閬靛畧鍒戞硶253娉曟潯
  • 鏋舵瀯甯堢礌璐?/a>
  • 鍥㈤槦绠$悊

    • 鎷涜仒
  • 璧勮

    • 琛屼笟璧勮
    • 鍏紬鍙峰垪琛?/a>
    • 鍗氬

      • 鍥㈤槦鍗氬
      • 涓汉鍗氬
    • 缁煎悎闂ㄦ埛銆佺ぞ鍖?/a>
    • 闂瓟銆佽璁虹被绀惧尯
    • 琛屼笟鏁版嵁鍒嗘瀽
    • 涓撻」缃戠珯
    • 鍏朵粬绫?/a>
    • 鎺ㄨ崘鍙傝€冧功

      • 鍦ㄧ嚎鐢靛瓙涔?/a>
      • 绾歌川涔?/a>

        • 寮€鍙戞柟闈?/a>
        • 鏋舵瀯鏂归潰
        • 鎶€鏈鐞嗘柟闈?/a>
        • 鍩虹鐞嗚
        • 宸ュ叿鏂归潰
        • 澶ф暟鎹柟闈?/a>
  • 鎶€鏈祫婧?/a>

    • 寮€婧愯祫婧?/a>
    • 鎵嬪唽銆佹枃妗c€佹暀绋?/a>
    • 鍦ㄧ嚎璇惧爞
    • 浼氳銆佹椿鍔?/a>
    • 甯哥敤APP
    • 鎵惧伐浣?/a>
    • 宸ュ叿
    • 浠g爜鎵樼
    • 鏂囦欢鏈嶅姟
    • 缁煎悎浜戞湇鍔″晢

      • VPS

锛圱oc generated by simple-php-github-toc 锛?/strong>

鏁版嵁缁撴瀯

闃熷垪

  • 銆妀ava闃熷垪鈥斺€攓ueue璇︾粏鍒嗘瀽銆?/a>

    • 闈為樆濉為槦鍒楋細ConcurrentLinkedQueue(鏃犵晫绾跨▼瀹夊叏)锛岄噰鐢–AS鏈哄埗锛坈ompareAndSwapObject鍘熷瓙鎿嶄綔锛夈€?/li>
    • 闃诲闃熷垪锛欰rrayBlockingQueue(鏈夌晫)銆丩inkedBlockingQueue锛堟棤鐣岋級銆丏elayQueue銆丳riorityBlockingQueue锛岄噰鐢ㄩ攣鏈哄埗锛涗娇鐢?ReentrantLock 閿併€?/li>
  • 銆奓inkedList銆丆oncurrentLinkedQueue銆丩inkedBlockingQueue瀵规瘮鍒嗘瀽銆?/a>

闆嗗悎

  • 銆奐ava Set闆嗗悎鐨勮瑙c€?/a>

閾捐〃銆佹暟缁?/h2>
  • 銆奐ava闆嗗悎璇﹁В--浠€涔堟槸List銆?/a>

瀛楀吀銆佸叧鑱旀暟缁?/h2>
  • 銆奐ava map 璇﹁В - 鐢ㄦ硶銆侀亶鍘嗐€佹帓搴忋€佸父鐢ˋPI绛夈€?/a>

鏍?/h2>
  • 銆妀ava鏁版嵁缁撴瀯涓庣畻娉曚箣鏍堬紙Stack锛夎璁′笌瀹炵幇銆?/a>
  • 銆奐ava Stack 绫汇€?/a>
  • 銆妀ava stack鐨勮缁嗗疄鐜板垎鏋愩€?/a>

    • Stack 鏄嚎绋嬪畨鍏ㄧ殑銆?/li>
    • 鍐呴儴浣跨敤鏁扮粍淇濆瓨鏁版嵁锛屼笉澶熸椂缈诲€嶃€?/li>

鏍?/h2>

浜屽弶鏍?/h3>

姣忎釜鑺傜偣鏈€澶氭湁涓や釜鍙跺瓙鑺傜偣銆?/p>

  • 銆婁簩鍙夋爲銆?/a>

瀹屽叏浜屽弶鏍?/h3>
  • 銆婂畬鍏ㄤ簩鍙夋爲銆?/a>

    • 鍙惰妭鐐瑰彧鑳藉嚭鐜板湪鏈€涓嬪眰鍜屾涓嬪眰锛屽苟涓旀渶涓嬮潰涓€灞傜殑缁撶偣閮介泦涓湪璇ュ眰鏈€宸﹁竟鐨勮嫢骞蹭綅缃殑浜屽弶鏍戙€?/li>

骞宠 浜屽弶鏍?/h3>

宸﹀彸涓や釜瀛愭爲鐨勯珮搴﹀樊鐨勭粷瀵瑰€间笉瓒呰繃1锛屽苟涓斿乏鍙充袱涓瓙鏍戦兘鏄竴妫靛钩琛′簩鍙夋爲銆?/p>

  • 銆婃祬璋堟暟鎹粨鏋?骞宠 浜屽弶鏍戙€?/a>
  • 銆婃祬璋堢畻娉曞拰鏁版嵁缁撴瀯: 鍏?骞宠 鏌ユ壘鏍戜箣2-3鏍戙€?/a>

浜屽弶鏌ユ壘鏍戯紙BST锛?/h3>

浜屽弶鏌ユ壘鏍戯紙Binary Search Tree锛夛紝涔熺О鏈夊簭浜屽弶鏍戯紙ordered binary tree锛?鎺掑簭浜屽弶鏍戯紙sorted binary tree锛夈€?/p>

  • 銆婃祬璋堢畻娉曞拰鏁版嵁缁撴瀯: 涓?浜屽弶鏌ユ壘鏍戙€?/a>

绾㈤粦鏍?/h3>
  • 銆婃渶瀹规槗鎳傚緱绾㈤粦鏍戙€?/a>

    • 娣诲姞闃舵鍚庯紝宸︽棆鎴栬€呭彸鏃嬩粠鑰屽啀娆¤揪鍒板钩琛°€?/li>
  • 銆婃祬璋堢畻娉曞拰鏁版嵁缁撴瀯: 涔?骞宠 鏌ユ壘鏍戜箣绾㈤粦鏍戙€?/a>

B锛孊+锛孊*鏍?/h3>

MySQL鏄熀浜嶣+鏍戣仛闆嗙储寮曠粍缁囪〃

  • 銆夿-鏍戯紝B+鏍戯紝B*鏍戣瑙c€?/a>
  • 銆夿-鏍戯紝B+鏍戜笌B*鏍戠殑浼樼己鐐规瘮杈冦€?/a>

    • B+鏍戠殑鍙跺瓙鑺傜偣閾捐〃缁撴瀯鐩告瘮浜?B-鏍戜究浜庢壂搴擄紝鍜岃寖鍥存绱€?/li>

    LSM 鏍?/h3>

LSM锛圠og-Structured Merge-Trees锛夊拰 B+ 鏍戠浉姣旓紝鏄壓鐗蹭簡閮ㄥ垎璇荤殑鎬ц兘鏉ユ崲鍙栧啓鐨勬€ц兘(閫氳繃鎵归噺鍐欏叆)锛屽疄鐜拌鍐欎箣闂寸殑骞宠 銆?br>Hbase銆丩evelDB銆乀air锛圠ong DB锛夈€乶essDB 閲囩敤 LSM 鏍戠殑缁撴瀯銆侺SM鍙互蹇€熷缓绔嬬储寮曘€?/p>

  • 銆奓SM鏍?VS B+鏍戙€?/a>

    • B+ 鏍戣鎬ц兘濂斤紝浣嗙敱浜庨渶瑕佹湁搴忕粨鏋勶紝褰搆ey姣旇緝鍒嗘暎鏃讹紝纾佺洏瀵婚亾棰戠箒锛岄€犳垚鍐欐€ц兘杈冨樊銆?/li>
    • LSM 鏄皢涓€涓ぇ鏍戞媶鍒嗘垚N妫靛皬鏍戯紝鍏堝啓鍒板唴瀛橈紙鏃犲閬撻棶棰橈紝鎬ц兘楂橈級锛屽湪鍐呭瓨涓瀯寤轰竴棰楁湁搴忓皬鏍戯紙鏈夊簭鏍戯級锛岄殢鐫€灏忔爲瓒婃潵瓒婂ぇ锛屽唴瀛樼殑灏忔爲浼歠lush鍒扮鐩樹笂銆傚綋璇绘椂锛岀敱浜庝笉鐭ラ亾鏁版嵁鍦ㄥ摢妫靛皬鏍戜笂锛屽洜姝ゅ繀椤婚亶鍘嗭紙浜屽垎鏌ユ壘锛夋墍鏈夌殑灏忔爲锛屼絾鍦ㄦ瘡棰楀皬鏍戝唴閮ㄦ暟鎹槸鏈夊簭鐨勩€?/li>
  • 銆奓SM鏍戯紙Log-Structured Merge Tree锛夊瓨鍌ㄥ紩鎿庛€?/a>

    • 鏋佺鐨勮锛屽熀浜嶭SM鏍戝疄鐜扮殑HBase鐨勫啓鎬ц兘姣擬ySQL楂樹簡涓€涓暟閲忕骇锛岃鎬ц兘浣庝簡涓€涓暟閲忕骇銆?/li>
    • 浼樺寲鏂瑰紡锛欱loom filter 鏇夸唬浜屽垎鏌ユ壘锛沜ompact 灏忔暟浣嶅ぇ鏍戯紝鎻愰珮鏌ヨ鎬ц兘銆?/li>
    • Hbase 涓紝鍐呭瓨涓揪鍒颁竴瀹氶槇鍊煎悗锛屾暣浣揻lush鍒扮鐩樹笂銆佸舰鎴愪竴涓枃浠讹紙B+鏁帮級锛孒DFS涓嶆敮鎸乽pdate鎿嶄綔锛屾墍浠base鍋氭暣浣揻lush鑰屼笉鏄痬erge update銆俧lush鍒扮鐩樹笂鐨勫皬鏍戯紝瀹氭湡浼氬悎骞舵垚涓€涓ぇ鏍戙€?/li>

BitSet

缁忓父鐢ㄤ簬澶ц妯℃暟鎹殑鎺掗噸妫€鏌ャ€?/p>

  • 銆奐ava Bitset绫汇€?/a>
  • 銆奐ava BitSet锛堜綅闆嗭級銆?/a>

甯哥敤绠楁硶

  • 銆婂父瑙佹帓搴忕畻娉曞強瀵瑰簲鐨勬椂闂村鏉傚害鍜岀┖闂村鏉傚害銆?/a>

鎺掑簭銆佹煡鎵剧畻娉?/h2>
  • 銆婂父瑙佹帓搴忕畻娉曞強瀵瑰簲鐨勬椂闂村鏉傚害鍜岀┖闂村鏉傚害銆?/a>

閫夋嫨鎺掑簭

  • 銆奐ava涓殑缁忓吀绠楁硶涔嬮€夋嫨鎺掑簭锛圫electionSort锛夈€?/a>

    • 姣忎竴瓒熶粠寰呮帓搴忕殑璁板綍涓€夊嚭鏈€灏忕殑鍏冪礌锛岄『搴忔斁鍦ㄥ凡鎺掑ソ搴忕殑搴忓垪鏈€鍚庯紝鐩村埌鍏ㄩ儴璁板綍鎺掑簭瀹屾瘯銆?/li>

鍐掓场鎺掑簭

  • 銆婂啋娉℃帓搴忕殑2绉嶅啓娉曘€?/a>

    • 鐩搁偦鍏冪礌鍓嶅悗浜ゆ崲銆佹妸鏈€澶х殑鎺掑埌鏈€鍚庛€?/li>
    • 鏃堕棿澶嶆潅搴?O(n虏)

鎻掑叆鎺掑簭

  • 銆婃帓搴忕畻娉曟€荤粨涔嬫彃鍏ユ帓搴忋€?/a>

蹇€熸帓搴?/h3>
  • 銆婂潗鍦ㄩ┈妗朵笂鐪嬬畻娉曪細蹇€熸帓搴忋€?/a>

    • 涓€渚ф瘮鍙﹀涓€渚ч兘澶ф垨灏忋€?/li>

    褰掑苟鎺掑簭

  • 銆婂浘瑙f帓搴忕畻娉?鍥?涔嬪綊骞舵帓搴忋€?/a>

    • 鍒嗚€屾不涔嬶紝鍒嗘垚灏忎唤鎺掑簭锛屽湪鍚堝苟(閲嶅缓涓€涓柊绌洪棿杩涜澶嶅埗)銆?/li>

甯屽皵鎺掑簭

TODO

鍫嗘帓搴?/h3>
  • 銆婂浘瑙f帓搴忕畻娉?涓?涔嬪爢鎺掑簭銆?/a>

    • 鎺掑簭杩囩▼灏辨槸鏋勫缓鏈€澶у爢鐨勮繃绋嬶紝鏈€澶у爢锛氭瘡涓粨鐐圭殑鍊奸兘澶т簬鎴栫瓑浜庡叾宸﹀彸瀛╁瓙缁撶偣鐨勫€硷紝鍫嗛《鍏冪礌鏄渶澶у€笺€?/li>

璁℃暟鎺掑簭

  • 銆婅鏁版帓搴忓拰妗舵帓搴忋€?/a>

    • 鍜屾《鎺掑簭杩囩▼姣旇緝鍍忥紝宸埆鍦ㄤ簬妗剁殑鏁伴噺銆?/li>

妗舵帓搴?/h3>
  • 銆娿€愬晩鍝堬紒绠楁硶銆戞渶蹇渶绠€鍗曠殑鎺掑簭鈥斺€旀《鎺掑簭銆?/a>
  • 銆婃帓搴忕畻娉曪紙涓夛級锛氳鏁版帓搴忎笌妗舵帓搴忋€?/a>

    • 妗舵帓搴忓皢[0,1)鍖洪棿鍒掑垎涓簄涓浉鍚岀殑澶у皬鐨勫瓙鍖洪棿锛岃繖浜涘瓙鍖洪棿琚О涓烘《銆?/li>
    • 姣忎釜妗跺崟鐙繘琛屾帓搴忥紝鐒跺悗鍐嶉亶鍘嗘瘡涓《銆?/li>

鍩烘暟鎺掑簭

鎸夌収涓綅銆佸崄浣嶃€佺櫨浣嶃€?..渚濇鏉ユ帓銆?/p>

  • 銆婃帓搴忕畻娉曠郴鍒楋細鍩烘暟鎺掑簭銆?/a>
  • 銆婂熀鏁版帓搴忋€?/a>

浜屽垎鏌ユ壘

  • 銆婁簩鍒嗘煡鎵?java瀹炵幇)銆?/a>

    • 瑕佹眰寰呮煡鎵剧殑搴忓垪鏈夊簭銆?/li>
    • 鏃堕棿澶嶆潅搴?O(logN)銆?/li>
  • 銆妀ava瀹炵幇浜屽垎鏌ユ壘-涓ょ鏂瑰紡銆?/a>

    • while + 閫掑綊銆?/li>

    Java 涓殑鎺掑簭宸ュ叿

  • 銆夾rrays.sort鍜孋ollections.sort瀹炵幇鍘熺悊瑙f瀽銆?/a>

    • Collections.sort绠楁硶璋冪敤鐨勬槸鍚堝苟鎺掑簭銆?/li>
    • Arrays.sort() 閲囩敤浜?绉嶆帓搴忕畻娉?-- 鍩烘湰绫诲瀷鏁版嵁浣跨敤蹇€熸帓搴忔硶锛屽璞℃暟缁勪娇鐢ㄥ綊骞舵帓搴忋€?/li>

甯冮殕杩囨护鍣?/h2>

甯哥敤浜庡ぇ鏁版嵁鐨勬帓閲嶏紝姣斿email锛寀rl 绛夈€?br>鏍稿績鍘熺悊锛氬皢姣忔潯鏁版嵁閫氳繃璁$畻浜х敓涓€涓寚绾癸紙涓€涓瓧鑺傛垨澶氫釜瀛楄妭锛屼絾涓€瀹氭瘮鍘熷鏁版嵁瑕佸皯寰堝锛夛紝鍏朵腑姣忎竴浣嶉兘鏄€氳繃闅忔満璁$畻鑾峰緱锛屽湪灏嗘寚绾规槧灏勫埌涓€涓ぇ鐨勬寜浣嶅瓨鍌ㄧ殑绌洪棿涓€傛敞鎰忥細浼氭湁涓€瀹氱殑閿欒鐜囥€?br>浼樼偣锛氱┖闂村拰鏃堕棿鏁堢巼閮藉緢楂樸€?br>缂虹偣锛氶殢鐫€瀛樺叆鐨勫厓绱犳暟閲忓鍔狅紝璇畻鐜囬殢涔嬪鍔犮€?/p>

  • 銆婂竷闅嗚繃婊ゅ櫒 -- 绌洪棿鏁堢巼寰堥珮鐨勬暟鎹粨鏋勩€?/a>
  • 銆婂ぇ閲忔暟鎹幓閲嶏細Bitmap鍜屽竷闅嗚繃婊ゅ櫒(Bloom Filter)銆?/a>
  • 銆婂熀浜嶳edis鐨勫竷闅嗚繃婊ゅ櫒鐨勫疄鐜般€?/a>

    • 鍩轰簬 Redis 鐨?Bitmap 鏁版嵁缁撴瀯銆?/li>
  • 銆婄綉缁滅埇铏細URL鍘婚噸绛栫暐涔嬪竷闅嗚繃婊ゅ櫒(BloomFilter)鐨勪娇鐢ㄣ€?/a>

    • 浣跨敤Java涓殑 BitSet 绫?鍜?鍔犳潈鍜宧ash绠楁硶銆?/li>

瀛楃涓叉瘮杈?/h2>

KMP 绠楁硶

KMP锛欿nuth-Morris-Pratt绠楁硶锛堢畝绉癒MP锛?br>鏍稿績鍘熺悊鏄埄鐢ㄤ竴涓€滈儴鍒嗗尮閰嶈〃鈥濓紝璺宠繃宸茬粡鍖归厤杩囩殑鍏冪礌銆?/p>

  • 銆婂瓧绗︿覆鍖归厤鐨凨MP绠楁硶銆?/a>

娣卞害浼樺厛銆佸箍搴︿紭鍏?/h2>
  • 銆婂箍搴︿紭鍏堟悳绱FS鍜屾繁搴︿紭鍏堟悳绱FS銆?/a>

璐績绠楁硶

  • 銆婄畻娉曪細璐┆绠楁硶鍩虹銆?/a>
  • 銆婂父瑙佺畻娉曞強闂鍦烘櫙鈥斺€旇椽蹇冪畻娉曘€?/a>

鍥炴函绠楁硶

  • 銆?浜斿ぇ甯哥敤绠楁硶涔嬪洓锛氬洖婧硶銆?/a>

鍓灊绠楁硶

  • 銆娢?尾鍓灊绠楁硶銆?/a>

鍔ㄦ€佽鍒?/h2>
  • 銆婅瑙e姩鎬佽鍒掆€斺€旈偣鍗氳鍔ㄦ€佽鍒掋€?/a>
  • 銆婂姩鎬佽鍒掔畻娉曠殑涓汉鐞嗚В銆?/a>

鏈寸礌璐濆彾鏂?/h2>
  • 銆婂甫浣犳悶鎳傛湸绱犺礉鍙舵柉鍒嗙被绠楁硶銆?/a>

    • P(B|A)=P(A|B)P(B)/P(A)
  • 銆婅礉鍙舵柉鎺ㄦ柇鍙婂叾浜掕仈缃戝簲鐢?銆?/a>
  • 銆婅礉鍙舵柉鎺ㄦ柇鍙婂叾浜掕仈缃戝簲鐢?銆?/a>

鎺ㄨ崘绠楁硶

  • 銆婃帹鑽愮畻娉曠患杩般€?/a>
  • 銆奣OP 10 寮€婧愮殑鎺ㄨ崘绯荤粺绠€浠嬨€?/a>

鏈€灏忕敓鎴愭爲绠楁硶

  • 銆婄畻娉曞璁?-鏈€灏忕敓鎴愭爲锛圞ruskal鍜孭rim绠楁硶锛夈€?/a>

鏈€鐭矾寰勭畻娉?/h2>
  • 銆奃ijkstra绠楁硶璇﹁В銆?/a>

骞跺彂

Java 骞跺彂

  • Java 骞跺彂鐭ヨ瘑鍚堥泦
  • JAVA骞跺彂鐭ヨ瘑鍥捐氨

澶氱嚎绋?/h2>
  • 銆?0涓狫ava澶氱嚎绋嬮棶棰樻€荤粨銆?/a>

绾跨▼瀹夊叏

  • 銆奐ava骞跺彂缂栫▼鈥斺€旂嚎绋嬪畨鍏ㄥ強瑙e喅鏈哄埗绠€浠嬨€?/a>

涓€鑷存€с€佷簨鍔?/h2>

浜嬪姟 ACID 鐗规€?/h3>
  • 銆婃暟鎹簱浜嬪姟ACID鐗规€с€?/a>

浜嬪姟鐨勯殧绂荤骇鍒?/h3>
  • 鏈彁浜よ锛氫竴涓簨鍔″彲浠ヨ鍙栧彟涓€涓湭鎻愪氦鐨勬暟鎹紝瀹规槗鍑虹幇鑴忚鐨勬儏鍐点€?/li>
  • 璇绘彁浜わ細涓€涓簨鍔$瓑鍙﹀涓€涓簨鍔℃彁浜や箣鍚庢墠鍙互璇诲彇鏁版嵁锛屼絾浼氬嚭鐜颁笉鍙噸澶嶈鐨勬儏鍐碉紙澶氭璇诲彇鐨勬暟鎹笉涓€鑷达級锛岃鍙栬繃绋嬩腑鍑虹幇UPDATE鎿嶄綔锛屼細澶氥€傦紙澶у鏁版暟鎹簱榛樿绾у埆鏄疪C锛屾瘮濡係QL Server锛孫racle锛夛紝璇诲彇鐨勬椂鍊欎笉鍙互淇敼銆?/li>
  • 鍙噸澶嶈锛?鍚屼竴涓簨鍔¢噷纭繚姣忔璇诲彇鐨勬椂鍊欙紝鑾峰緱鐨勬槸鍚屾牱鐨勬暟鎹紝浣嗕笉淇濋殰鍘熷鏁版嵁琚叾浠栦簨鍔℃洿鏂帮紙骞昏锛夛紝Mysql InnoDB 灏辨槸杩欎釜绾у埆銆?/li>
  • 搴忓垪鍖栵細鎵€鏈変簨鐗╀覆琛屽鐞嗭紙鐗虹壊浜嗘晥鐜囷級
  • 銆婄悊瑙d簨鍔$殑4绉嶉殧绂荤骇鍒€?/a>
  • 鏁版嵁搴撲簨鍔$殑鍥涘ぇ鐗规€у強浜嬪姟闅旂绾у埆
  • 銆奙ySQL鐨処nnoDB鐨勫够璇婚棶棰?銆?/a>

    • 骞昏鐨勪緥瀛愰潪甯告竻妤氥€?/li>
    • 閫氳繃 SELECT ... FOR UPDATE 瑙e喅銆?/li>
  • 銆婁竴绡囨枃绔犲甫浣犺鎳侻ySQL鍜孖nnoDB銆?/a>

    • 鍥捐В鑴忚銆佷笉鍙噸澶嶈銆佸够璇婚棶棰樸€?/li>

MVCC

  • 銆娿€恗ysql銆戝叧浜巌nnodb涓璏VCC鐨勪竴浜涚悊瑙c€?/a>

    • innodb 涓?MVCC 鐢ㄥ湪 Repeatable-Read 闅旂绾у埆銆?/li>
    • MVCC 浼氫骇鐢熷够璇婚棶棰橈紙鏇存柊鏃跺紓甯搞€傦級
  • 銆婅交鏉剧悊瑙YSQL MVCC 瀹炵幇鏈哄埗銆?/a>

    • 閫氳繃闅愯棌鐗堟湰鍒楁潵瀹炵幇 MVCC 鎺у埗锛屼竴鍒楄褰曞垱寤烘椂闂淬€佷竴鍒楄褰曞垹闄ゆ椂闂达紝杩欓噷鐨勬椂闂?/li>
    • 姣忔鍙搷浣滄瘮褰撳墠鐗堟湰灏忥紙鎴栫瓑浜庯級鐨?琛屻€?/li>

閿?/h2>

Java涓殑閿佸拰鍚屾绫?/h3>
  • 銆奐ava涓殑閿佸垎绫汇€?/a>

    • 涓昏鍖呮嫭 synchronized銆丷eentrantLock銆佸拰 ReadWriteLock銆?/li>
  • 銆奐ava骞跺彂涔婣QS璇﹁В銆?/a>
  • 銆奐ava涓俊鍙烽噺 Semaphore銆?/a>

    • 鏈夋暟閲忔帶鍒?/li>
    • 鐢宠鐢?acquire锛岀敵璇蜂笉瑕佸垯闃诲锛涢噴鏀剧敤 release銆?/li>
  • 銆妀ava寮€鍙戜腑鐨凪utex vs Semaphore銆?/a>

    • 绠€鍗曠殑璇?灏辨槸Mutex鏄帓瀹冪殑锛屽彧鏈変竴涓彲浠ヨ幏鍙栧埌璧勬簮锛?Semaphore涔熷叿鏈夋帓瀹冩€э紝浣嗗彲浠ュ畾涔夊涓彲浠ヨ幏鍙栫殑璧勬簮鐨勫璞°€?/li>

鍏钩閿?& 闈炲叕骞抽攣

鍏钩閿佺殑浣滅敤灏辨槸涓ユ牸鎸夌収绾跨▼鍚姩鐨勯『搴忔潵鎵ц鐨勶紝涓嶅厑璁稿叾浠栫嚎绋嬫彃闃熸墽琛岀殑锛涜€岄潪鍏钩閿佹槸鍏佽鎻掗槦鐨勩€?/p>

  • 銆婂叕骞抽攣涓庨潪鍏钩閿併€?/a>

    • 榛樿鎯呭喌涓?ReentrantLock 鍜?synchronized 閮芥槸闈炲叕骞抽攣銆俁eentrantLock 鍙互璁剧疆鎴愬叕骞抽攣銆?/li>

鎮茶閿?/h3>

鎮茶閿佸鏋滀娇鐢ㄤ笉褰擄紙閿佺殑鏉℃暟杩囧锛夛紝浼氬紩璧锋湇鍔″ぇ闈㈢Н绛夊緟銆傛帹鑽愪紭鍏堜娇鐢ㄤ箰瑙傞攣+閲嶈瘯銆?/p>

  • 銆娿€怣ySQL銆戞偛瑙傞攣&涔愯閿併€?/a>

    • 涔愯閿佺殑鏂瑰紡锛氱増鏈彿+閲嶈瘯鏂瑰紡
    • 鎮茶閿侊細閫氳繃 select ... for update 杩涜琛岄攣(涓嶅彲璇汇€佷笉鍙啓锛宻hare 閿佸彲璇讳笉鍙啓)銆?/li>
  • 銆奙ysql鏌ヨ璇彞浣跨敤select.. for update瀵艰嚧鐨勬暟鎹簱姝婚攣鍒嗘瀽銆?/a>

    • mysql鐨刬nnodb瀛樺偍寮曟搸瀹炲姟閿佽櫧鐒舵槸閿佽锛屼絾瀹冨唴閮ㄦ槸閿佺储寮曠殑銆?/li>
    • 閿佺浉鍚屾暟鎹殑涓嶅悓绱㈠紩鏉′欢鍙兘浼氬紩璧锋閿併€?/li>
  • 銆奙ysql骞跺彂鏃剁粡鍏稿父瑙佺殑姝婚攣鍘熷洜鍙婅В鍐虫柟娉曘€?/a>

涔愯閿?& CAS

  • 銆婁箰瑙傞攣鐨勪竴绉嶅疄鐜版柟寮忊€斺€擟AS銆?/a>

    • 鍜孧ySQL涔愯閿佹柟寮忕浉浼硷紝鍙笉杩囨槸閫氳繃鍜屽師鍊艰繘琛屾瘮杈冦€?/li>

ABA 闂

鐢变簬楂樺苟鍙戯紝鍦–AS涓嬶紝鏇存柊鍚庡彲鑳芥A闈炲郊A銆傞€氳繃鐗堟湰鍙峰彲浠ヨВ鍐筹紝绫讳技浜庝笂鏂嘙ysql 涓彁鍒扮殑鐨勪箰瑙傞攣銆?/p>

  • 銆奐ava CAS 鍜孉BA闂銆?/a>
  • 銆奐ava 涓?ABA闂鍙婇伩鍏嶃€?/a>

    • AtomicStampedReference 鍜?AtomicStampedReference銆?/li>

CopyOnWrite瀹瑰櫒

鍙互瀵笴opyOnWrite瀹瑰櫒杩涜骞跺彂鐨勮锛岃€屼笉闇€瑕佸姞閿併€侰opyOnWrite骞跺彂瀹瑰櫒鐢ㄤ簬璇诲鍐欏皯鐨勫苟鍙戝満鏅€傛瘮濡傜櫧鍚嶅崟锛岄粦鍚嶅崟锛屽晢鍝佺被鐩殑璁块棶鍜屾洿鏂板満鏅紝涓嶉€傚悎闇€瑕佹暟鎹己涓€鑷存€х殑鍦烘櫙銆?/p>

  • 銆奐AVA涓啓鏃跺鍒?Copy-On-Write)Map瀹炵幇銆?/a>

    • 瀹炵幇璇诲啓鍒嗙锛岃鍙栧彂鐢熷湪鍘熷鏁版嵁涓婏紝鍐欏叆鍙戠敓鍦ㄥ壇鏈笂銆?/li>
    • 涓嶇敤鍔犻攣锛岄€氳繃鏈€缁堜竴鑷村疄鐜颁竴鑷存€с€?/li>
  • 銆婅亰鑱婂苟鍙?Java涓殑Copy-On-Write瀹瑰櫒銆?/a>

RingBuffer

  • 銆婄嚎绋嬪畨鍏ㄧ殑鏃犻攣RingBuffer鐨勫疄鐜般€愪竴涓绾跨▼锛屼竴涓啓绾跨▼銆戙€?/a>

鍙噸鍏ラ攣 & 涓嶅彲閲嶅叆閿?/h3>
  • 銆婂彲閲嶅叆閿佸拰涓嶅彲閲嶅叆閿併€?/a>

    • 閫氳繃绠€鍗曚唬鐮佷妇渚嬭鏄庡彲閲嶅叆閿佸拰涓嶅彲閲嶅叆閿併€?/li>
    • 鍙噸鍏ラ攣鎸囧悓涓€涓嚎绋嬪彲浠ュ啀娆¤幏寰椾箣鍓嶅凡缁忚幏寰楃殑閿併€?/li>
    • 鍙噸鍏ラ攣鍙互鐢ㄦ埛閬垮厤姝婚攣銆?/li>
    • Java涓殑鍙噸鍏ラ攣锛歴ynchronized 鍜?java.util.concurrent.locks.ReentrantLock
  • 銆奟eenTrantLock鍙噸鍏ラ攣锛堝拰synchronized鐨勫尯鍒級鎬荤粨銆?/a>

    • synchronized 浣跨敤鏂逛究锛岀紪璇戝櫒鏉ュ姞閿侊紝鏄潪鍏钩閿併€?/li>
    • ReenTrantLock 浣跨敤鐏垫椿锛岄攣鐨勫叕骞虫€у彲浠ュ畾鍒躲€?/li>
    • 鐩稿悓鍔犻攣鍦烘櫙涓嬶紝鎺ㄨ崘浣跨敤 synchronized銆?/li>

浜掓枼閿?& 鍏变韩閿?/h3>

浜掓枼閿侊細鍚屾椂鍙兘鏈変竴涓嚎绋嬭幏寰楅攣銆傛瘮濡傦紝ReentrantLock 鏄簰鏂ラ攣锛孯eadWriteLock 涓殑鍐欓攣鏄簰鏂ラ攣銆?br>鍏变韩閿侊細鍙互鏈夊涓嚎绋嬪悓鏃舵垨鐨勯攣銆傛瘮濡傦紝Semaphore銆丆ountDownLatch 鏄叡浜攣锛孯eadWriteLock 涓殑璇婚攣鏄叡浜攣銆?/p>

  • 銆奟eadWriteLock鍦烘櫙搴旂敤銆?/a>

姝婚攣

  • 銆娾€滄閿佲€濆洓涓繀瑕佹潯浠剁殑鍚堢悊瑙i噴銆?/a>

    • 浜掓枼銆佹寔鏈夈€佷笉鍙墺澶恒€佺幆褰㈢瓑寰呫€?/li>
  • Java濡備綍鏌ョ湅姝婚攣锛?/a>

    • JConsole 鍙互璇嗗埆姝婚攣銆?/li>
  • java澶氱嚎绋嬬郴鍒楋細姝婚攣鍙婃娴?/a>

    • jstack 鍙互鏄剧ず姝婚攣銆?/li>

鎿嶄綔绯荤粺

璁$畻鏈哄師鐞?/h2>
  • 銆婃搷浣滅郴缁熷熀纭€鐭ヨ瘑鈥斺€旀搷浣滅郴缁熺殑鍘熺悊锛岀被鍨嬪拰缁撴瀯銆?/a>

CPU

澶氱骇缂撳瓨

鍏稿瀷鐨?CPU 鏈変笁绾х紦瀛橈紝璺濈鏍稿績瓒婅繎锛岄€熷害瓒婂揩锛岀┖闂磋秺灏忋€侺1 涓€鑸?32k锛孡2 涓€鑸?256k锛孡3 涓€鑸?2M銆傚唴瀛橀€熷害闇€瑕?00涓?CPU 鍛ㄦ湡锛孋PU 缂撳瓨闇€瑕?涓狢PU鍛ㄦ湡銆?/p>

  • 銆婁粠Java瑙嗚鐞嗚ВCPU缂撳瓨鍜屼吉鍏变韩銆?/a>

杩涚▼

TODO

绾跨▼

  • 銆婄嚎绋嬬殑鐢熷懡鍛ㄦ湡鍙婄姸鎬佽浆鎹㈣瑙c€?/a>

鍗忕▼

  • 銆婄粓缁損ython鍗忕▼----浠巠ield鍒癮ctor妯″瀷鐨勫疄鐜般€?/a>

    • 绾跨▼鐨勮皟搴︽槸鐢辨搷浣滅郴缁熻礋璐o紝鍗忕▼璋冨害鏄▼搴忚嚜琛岃礋璐?/li>
    • 涓庣嚎绋嬬浉姣旓紝鍗忕▼鍑忓皯浜嗘棤璋撶殑鎿嶄綔绯荤粺鍒囨崲.
    • 瀹為檯涓婂綋閬囧埌IO鎿嶄綔鏃跺仛鍒囨崲鎵嶆洿鏈夋剰涔夛紝锛堝洜涓篒O鎿嶄綔涓嶇敤鍗犵敤CPU锛夛紝濡傛灉娌¢亣鍒癐O鎿嶄綔锛屾寜鐓ф椂闂寸墖鍒囨崲.

Linux

  • 銆奓inux 鍛戒护澶у叏銆?/a>

璁捐妯″紡

璁捐妯″紡鐨勫叚澶у師鍒?/h2>
  • 銆婅璁℃ā寮忕殑鍏ぇ鍘熷垯銆?/a>

    • 寮€闂師鍒欙細瀵规墿灞曞紑鏀?瀵逛慨鏀瑰叧闂紝澶氫娇鐢ㄦ娊璞$被鍜屾帴鍙c€?/li>
    • 閲屾皬鏇挎崲鍘熷垯锛氬熀绫诲彲浠ヨ瀛愮被鏇挎崲锛屼娇鐢ㄦ娊璞$被缁ф壙,涓嶄娇鐢ㄥ叿浣撶被缁ф壙銆?/li>
    • 渚濊禆鍊掕浆鍘熷垯锛氳渚濊禆浜庢娊璞?涓嶈渚濊禆浜庡叿浣擄紝閽堝鎺ュ彛缂栫▼,涓嶉拡瀵瑰疄鐜扮紪绋嬨€?/li>
    • 鎺ュ彛闅旂鍘熷垯锛氫娇鐢ㄥ涓殧绂荤殑鎺ュ彛,姣斾娇鐢ㄥ崟涓帴鍙eソ锛屽缓绔嬫渶灏忕殑鎺ュ彛銆?/li>
    • 杩背鐗规硶鍒欙細涓€涓蒋浠跺疄浣撳簲褰撳敖鍙兘灏戝湴涓庡叾浠栧疄浣撳彂鐢熺浉浜掍綔鐢紝閫氳繃涓棿绫诲缓绔嬭仈绯汇€?/li>
    • 鍚堟垚澶嶇敤鍘熷垯锛氬敖閲忎娇鐢ㄥ悎鎴?鑱氬悎,鑰屼笉鏄娇鐢ㄧ户鎵裤€?/li>

23绉嶅父瑙佽璁℃ā寮?/h2>
  • 銆婅璁℃ā寮忋€?/a>
  • 銆?3绉嶈璁℃ā寮忓叏瑙f瀽銆?/a>
  • 銆婅璁℃ā寮忕被鍥句笌绀轰緥銆?/a>

搴旂敤鍦烘櫙

  • 銆婄粏鏁癑DK閲岀殑璁捐妯″紡銆?/a>

    • 缁撴瀯鍨嬫ā寮忥細

      • 閫傞厤鍣細鐢ㄦ潵鎶婁竴涓帴鍙h浆鍖栨垚鍙︿竴涓帴鍙o紝濡?java.util.Arrays#asList()銆?/li>
      • 妗ユ帴妯″紡锛氳繖涓ā寮忓皢鎶借薄鍜屾娊璞℃搷浣滅殑瀹炵幇杩涜浜嗚В鑰︼紝杩欐牱浣垮緱鎶借薄鍜屽疄鐜板彲浠ョ嫭绔嬪湴鍙樺寲锛屽JDBC锛?/li>
      • 缁勫悎妯″紡锛氫娇寰楀鎴风鐪嬫潵鍗曚釜瀵硅薄鍜屽璞$殑缁勫悎鏄悓绛夌殑銆傛崲鍙ヨ瘽璇达紝鏌愪釜绫诲瀷鐨勬柟娉曞悓鏃朵篃鎺ュ彈鑷韩绫诲瀷浣滀负鍙傛暟锛屽 Map.putAll锛孡ist.addAll銆丼et.addAll銆?/li>
      • 瑁呴グ鑰呮ā寮忥細鍔ㄦ€佺殑缁欎竴涓璞¢檮鍔犻澶栫殑鍔熻兘锛岃繖涔熸槸瀛愮被鐨勪竴绉嶆浛浠f柟寮忥紝濡?java.util.Collections#checkedList|Map|Set|SortedSet|SortedMap銆?/li>
      • 浜厓妯″紡锛氫娇鐢ㄧ紦瀛樻潵鍔犻€熷ぇ閲忓皬瀵硅薄鐨勮闂椂闂达紝濡?valueOf(int)銆?/li>
      • 浠g悊妯″紡锛氫唬鐞嗘ā寮忔槸鐢ㄤ竴涓畝鍗曠殑瀵硅薄鏉ヤ唬鏇夸竴涓鏉傜殑鎴栬€呭垱寤鸿€楁椂鐨勫璞★紝濡?java.lang.reflect.Proxy
    • 鍒涘缓妯″紡:

      • 鎶借薄宸ュ巶妯″紡锛氭娊璞″伐鍘傛ā寮忔彁渚涗簡涓€涓崗璁潵鐢熸垚涓€绯诲垪鐨勭浉鍏虫垨鑰呯嫭绔嬬殑瀵硅薄锛岃€屼笉鐢ㄦ寚瀹氬叿浣撳璞$殑绫诲瀷锛屽 java.util.Calendar#getInstance()銆?/li>
      • 寤洪€犳ā寮?Builder)锛氬畾涔変簡涓€涓柊鐨勭被鏉ユ瀯寤哄彟涓€涓被鐨勫疄渚嬶紝浠ョ畝鍖栧鏉傚璞$殑鍒涘缓锛屽锛歫ava.lang.StringBuilder#append()銆?/li>
      • 宸ュ巶鏂规硶锛氬氨鏄?涓€涓繑鍥?/strong>鍏蜂綋瀵硅薄鐨勬柟娉曪紝鑰屼笉鏄涓紝濡?java.lang.Object#toString()銆乯ava.lang.Class#newInstance()銆?/li>
      • 鍘熷瀷妯″紡锛氫娇寰楃被鐨勫疄渚嬭兘澶熺敓鎴愯嚜韬殑鎷疯礉銆佸锛歫ava.lang.Object#clone()銆?/li>
      • 鍗曚緥妯″紡锛氬叏灞€鍙湁涓€涓疄渚嬶紝濡?java.lang.Runtime#getRuntime()銆?/li>
    • 琛屼负妯″紡锛?/p>

      • 璐d换閾炬ā寮忥細閫氳繃鎶婅姹備粠涓€涓璞′紶閫掑埌閾炬潯涓笅涓€涓璞$殑鏂瑰紡锛岀洿鍒拌姹傝澶勭悊瀹屾瘯锛屼互瀹炵幇瀵硅薄闂寸殑瑙h€︺€傚 javax.servlet.Filter#doFilter()銆?/li>
      • 鍛戒护妯″紡锛氬皢鎿嶄綔灏佽鍒板璞″唴锛屼互渚垮瓨鍌紝浼犻€掑拰杩斿洖锛屽锛歫ava.lang.Runnable銆?/li>
      • 瑙i噴鍣ㄦā寮忥細瀹氫箟浜嗕竴涓瑷€鐨勮娉曪紝鐒跺悗瑙f瀽鐩稿簲璇硶鐨勮鍙ワ紝濡傦紝java.text.Format锛宩ava.text.Normalizer銆?/li>
      • 杩唬鍣ㄦā寮忥細鎻愪緵涓€涓竴鑷寸殑鏂规硶鏉ラ『搴忚闂泦鍚堜腑鐨勫璞★紝濡?java.util.Iterator銆?/li>
      • 涓粙鑰呮ā寮忥細閫氳繃浣跨敤涓€涓腑闂村璞℃潵杩涜娑堟伅鍒嗗彂浠ュ強鍑忓皯绫讳箣闂寸殑鐩存帴渚濊禆锛宩ava.lang.reflect.Method#invoke()銆?/li>
      • 绌哄璞℃ā寮忥細濡?java.util.Collections#emptyList()銆?/li>
      • 瑙傚療鑰呮ā寮忥細瀹冧娇寰椾竴涓璞″彲浠ョ伒娲荤殑灏嗘秷鎭彂閫佺粰鎰熷叴瓒g殑瀵硅薄锛屽 java.util.EventListener銆?/li>
      • 妯℃澘鏂规硶妯″紡锛氳瀛愮被鍙互閲嶅啓鏂规硶鐨勪竴閮ㄥ垎锛岃€屼笉鏄暣涓噸鍐欙紝濡?java.util.Collections#sort()銆?/li>
  • 銆奡pring-娑夊強鍒扮殑璁捐妯″紡姹囨€汇€?/a>
  • 銆奙ybatis浣跨敤鐨勮璁℃ā寮忋€?/a>

鍗曚緥妯″紡

  • 銆婂崟渚嬫ā寮忕殑涓夌瀹炵幇 浠ュ強鍚勮嚜鐨勪紭缂虹偣銆?/a>
  • 銆婂崟渚嬫ā寮忥紞锛嶅弽灏勶紞锛嶉槻姝㈠簭鍒楀寲鐮村潖鍗曚緥妯″紡銆?/a>

    • 浣跨敤鏋氫妇绫诲瀷銆?/li>

璐d换閾炬ā寮?/h2>

TODO

MVC

  • 銆奙VC 妯″紡銆?/a>

    • 妯″瀷(model)锛嶈鍥?view)锛嶆帶鍒跺櫒(controller)

IOC

  • 銆婄悊瑙?IOC銆?/a>
  • 銆奍OC 鐨勭悊瑙d笌瑙i噴銆?/a>

    • 姝e悜鎺у埗锛氫紶缁熼€氳繃new鐨勬柟寮忋€傚弽鍚戞帶鍒讹紝閫氳繃瀹瑰櫒娉ㄥ叆瀵硅薄銆?/li>
    • 浣滅敤锛氱敤浜庢ā鍧楄В鑰︺€?/li>
    • DI锛欴ependency Injection锛屽嵆渚濊禆娉ㄥ叆锛屽彧鍏冲績璧勬簮浣跨敤锛屼笉鍏冲績璧勬簮鏉ユ簮銆?/li>

AOP

  • 銆婅交鏉剧悊瑙OP(闈㈠悜鍒囬潰缂栫▼)銆?/a>
  • 銆奡pring AOP璇﹁В銆?/a>
  • 銆奡pring AOP鐨勫疄鐜板師鐞嗐€?/a>

    • Spring AOP浣跨敤鐨勫姩鎬佷唬鐞嗭紝涓昏鏈変袱绉嶆柟寮忥細JDK鍔ㄦ€佷唬鐞嗗拰CGLIB鍔ㄦ€佷唬鐞嗐€?/li>
  • 銆奡pring AOP 瀹炵幇鍘熺悊涓?CGLIB 搴旂敤銆?/a>

    • Spring AOP 妗嗘灦瀵?AOP 浠g悊绫荤殑澶勭悊鍘熷垯鏄細濡傛灉鐩爣瀵硅薄鐨勫疄鐜扮被瀹炵幇浜嗘帴鍙o紝Spring AOP 灏嗕細閲囩敤 JDK 鍔ㄦ€佷唬鐞嗘潵鐢熸垚 AOP 浠g悊绫伙紱濡傛灉鐩爣瀵硅薄鐨勫疄鐜扮被娌℃湁瀹炵幇鎺ュ彛锛孲pring AOP 灏嗕細閲囩敤 CGLIB 鏉ョ敓鎴?AOP 浠g悊绫?/li>

UML

  • 銆奤ML鏁欑▼銆?/a>

寰湇鍔℃€濇兂

  • 銆婂井鏈嶅姟鏋舵瀯璁捐銆?/a>
  • 銆婂井鏈嶅姟鏋舵瀯鎶€鏈爤閫夊瀷鎵嬪唽銆?/a>

搴峰▉瀹氬緥

  • 銆婂井鏈嶅姟鏋舵瀯鐨勭悊璁哄熀纭€ - 搴峰▉瀹氬緥銆?/a>

    • 瀹氬緥涓€锛氱粍缁囨矡閫氭柟寮忎細閫氳繃绯荤粺璁捐琛ㄨ揪鍑烘潵锛屽氨鏄鏋舵瀯鐨勫竷灞€鍜岀粍缁囩粨鏋勪細鏈夌浉浼笺€?/li>
    • 瀹氬緥浜岋細鏃堕棿鍐嶅涓€浠朵簨鎯呬篃涓嶅彲鑳藉仛鐨勫畬缇庯紝浣嗘€绘湁鏃堕棿鍋氬畬涓€浠朵簨鎯呫€備竴鍙f皵鍚冧笉鎴愯儢瀛愶紝鍏堟悶瀹氳兘鎼炲畾鐨勩€?/li>
    • 瀹氬緥涓夛細绾垮瀷绯荤粺鍜岀嚎鍨嬬粍缁囨灦鏋勯棿鏈夋綔鍦ㄧ殑寮傝川鍚屾€佺壒鎬с€傜鐡滃緱鐡滐紝鍋氱嫭绔嬭嚜娌荤殑瀛愮郴缁熷噺灏戞矡閫氭垚鏈€?/li>
    • 瀹氬緥鍥涳細澶х殑绯荤粺缁勭粐鎬绘槸姣斿皬绯荤粺鏇村€惧悜浜庡垎瑙c€傚悎涔呭繀鍒嗭紝鍒嗚€屾不涔嬨€?/li>
  • 銆婂井鏈嶅姟鏋舵瀯鏍糕技20璁层€?/a>

杩愮淮 & 缁熻 & 鎶€鏈敮鎸?/h1>

甯歌鐩戞帶

  • 銆婅吘璁笟鍔$郴缁熺洃鎺х殑淇偧涔嬭矾銆?/a>

    • 鐩戞帶鐨勬柟寮忥細涓诲姩銆佽鍔ㄣ€佹梺璺?姣斿鑸嗘儏鐩戞帶)
    • 鐩戞帶绫诲瀷锛?鍩虹鐩戞帶銆佹湇鍔$鐩戞帶銆佸鎴风鐩戞帶銆?br> 鐩戞帶銆佺敤鎴风鐩戞帶
    • 鐩戞帶鐨勭洰鏍囷細鍏ㄣ€佸潡銆佸噯
    • 鏍稿績鎸囨爣锛氳姹傞噺銆佹垚鍔熺巼銆佽€楁椂
  • 銆婂紑婧愯繕鏄晢鐢紵鍗佸ぇ浜戣繍缁寸洃鎺у伐鍏锋í璇勩€?/a>

    • Zabbix銆丯agios銆丟anglia銆乑enoss銆丱pen-falcon銆佺洃鎺у疂銆?360缃戠珯鏈嶅姟鐩戞帶銆侀樋閲屼簯鐩戞帶銆佺櫨搴︿簯瑙傛祴銆佸皬铚滆渹缃戠珯鐩戞祴绛夈€?/li>
  • 銆婄洃鎺ф姤璀︾郴缁熸惌寤哄強浜屾寮€鍙戠粡楠屻€?/a>

鍛戒护琛岀洃鎺у伐鍏?/strong>

  • 銆婂父鐢ㄥ懡浠よ鐩戞帶宸ュ叿銆?/a>

    • top銆乻ar銆乼sar銆乶load
  • 銆?0涓懡浠よ宸ュ叿鐩戞帶 Linux 绯荤粺鎬ц兘銆?/a>
  • 銆奐VM鎬ц兘璋冧紭鐩戞帶宸ュ叿jps銆乯stack銆乯map銆乯hat銆乯stat銆乭prof浣跨敤璇﹁В銆?/a>

APM

APM 鈥? Application Performance Management

  • 銆奃apper锛屽ぇ瑙勬ā鍒嗗竷寮忕郴缁熺殑璺熻釜绯荤粺銆?/a>
  • CNCF OpenTracing锛?a href="https://link.segmentfault.com/?url=https%3A%2F%2Fgithub.com%2Fopentracing-contrib%2Fopentracing-specification-zh" rel="nofollow">涓枃鐗?/a>
  • 涓昏寮€婧愯蒋浠讹紝鎸夊瓧姣嶆帓搴?/p>

    • Apache SkyWalking
    • CAT
    • CNCF jaeger
    • Pinpoint
    • Zipkin
  • 銆婂紑婧怉PM鎶€鏈€夊瀷涓庡疄鎴樸€?/a>

    • 涓昏鍩轰簬 Google鐨凞apper锛堝ぇ瑙勬ā鍒嗗竷寮忕郴缁熺殑璺熻釜绯荤粺锛?鎬濇兂銆?/li>

缁熻鍒嗘瀽

  • 銆婃祦閲忕粺璁$殑鍩虹锛氬煁鐐广€?/a>

    • 甯哥敤鎸囨爣锛氳闂笌璁垮銆佸仠鐣欐椂闀裤€佽烦鍑虹巼銆侀€€鍑虹巼銆佽浆鍖栫巼銆佸弬涓庡害
  • 銆夾PP鍩嬬偣甯哥敤鐨勭粺璁″伐鍏枫€佸煁鐐圭洰鏍囧拰鍩嬬偣鍐呭銆?/a>

    • 绗笁鏂圭粺璁★細鍙嬬洘銆佺櫨搴︾Щ鍔ㄣ€侀瓟鏂广€丄pp Annie銆乼alking data銆佺绛栨暟鎹瓑銆?/li>
  • 銆婄編鍥㈢偣璇勫墠绔棤鐥曞煁鐐瑰疄璺点€?/a>

    • 鎵€璋撴棤鐥曘€佸嵆閫氳繃鍙鍖栧伐鍏烽厤缃噰闆嗚妭鐐癸紝鍦ㄥ墠绔嚜鍔ㄨВ鏋愰厤缃苟涓婃姤鍩嬬偣鏁版嵁锛岃€岄潪纭紪鐮併€?/li>

鎸佺画闆嗘垚(CI/CD)

  • 銆婃寔缁泦鎴愭槸浠€涔堬紵銆?/a>
  • 銆?涓祦琛岀殑鎸佺画闆嗘垚宸ュ叿銆?/a>

Jenkins

  • 銆婁娇鐢↗enkins杩涜鎸佺画闆嗘垚銆?/a>

鐜鍒嗙

寮€鍙戙€佹祴璇曘€佺敓鎴愮幆澧冨垎绂汇€?/p>

  • 銆婂紑鍙戠幆澧冦€佺敓浜х幆澧冦€佹祴璇曠幆澧冪殑鍩烘湰鐞嗚В鍜屽尯銆?/a>

鑷姩鍖栬繍缁?/h2>

Ansible

  • 銆夾nsible涓枃鏉冨▉鎸囧崡銆?/a>
  • 銆夾nsible鍩虹閰嶇疆鍜屼紒涓氱骇椤圭洰瀹炵敤妗堜緥銆?/a>

puppet

  • 銆婅嚜鍔ㄥ寲杩愮淮宸ュ叿鈥斺€攑uppet璇﹁В銆?/a>

chef

  • 銆奀hef 鐨勫畨瑁呬笌浣跨敤銆?/a>

娴嬭瘯

TDD 鐞嗚

  • 銆婃繁搴﹁В璇?- TDD锛堟祴璇曢┍鍔ㄥ紑鍙戯級銆?/a>

    • 鍩轰簬娴嬭瘯鐢ㄤ緥缂栫爜鍔熻兘浠g爜锛孹P锛圗xtreme Programming锛夌殑鏍稿績瀹炶返.
    • 濂藉锛氫竴娆″叧娉ㄤ竴涓偣锛岄檷浣庢€濈淮璐熸媴锛涜繋鎺ラ渶姹傚彉鍖栨垨鏀瑰杽浠g爜鐨勮璁★紱鎻愬墠婢勬竻闇€姹傦紱蹇€熷弽棣堬紱

鍗曞厓娴嬭瘯

  • 銆奐ava鍗曞厓娴嬭瘯涔婮Unit绡囥€?/a>
  • 銆奐Unit 4 涓?TestNG 瀵规瘮銆?/a>

    • TestNG 瑕嗙洊 JUnit 鍔熻兘锛岄€傜敤浜庢洿澶嶆潅鐨勫満鏅€?/li>
  • 銆婂崟鍏冩祴璇曚富瑕佺殑娴嬭瘯鍔熻兘鐐广€?/a>

    • 妯″潡鎺ュ彛娴嬭瘯銆佸眬閮ㄦ暟鎹粨鏋勬祴璇曘€佽矾寰勬祴璇?銆侀敊璇鐞嗘祴璇曘€佽竟鐣屾潯浠舵祴璇?銆?/li>

鍘嬪姏娴嬭瘯

  • 銆夾pache ab 娴嬭瘯浣跨敤鎸囧崡銆?/a>
  • 銆婂ぇ鍨嬬綉绔欏帇鍔涙祴璇曞強浼樺寲鏂规銆?/a>
  • 銆?0澶т富娴佸帇鍔?璐熻浇/鎬ц兘娴嬭瘯宸ュ叿鎺ㄨ崘銆?/a>
  • 銆婄湡瀹炴祦閲忓帇娴嬪伐鍏?tcpcopy搴旂敤娴呮瀽銆?/a>
  • 銆妌Grinder 绠€鏄撲娇鐢ㄦ暀绋嬨€?/a>

鍏ㄩ摼璺帇娴?/h3>
  • 銆婁含涓?18锛氬崌绾у叏閾捐矾鍘嬫祴鏂规锛屾墦閫犲啗婕旀満鍣ㄤ汉ForceBot銆?/a>
  • 銆婇タ浜嗕箞鍏ㄩ摼璺帇娴嬬殑鎺㈢储涓庡疄璺点€?/a>
  • 銆婂洓澶ц瑷€锛屽叓澶ф鏋讹綔婊存淮鍏ㄩ摼璺帇娴嬭В鍐充箣閬撱€?/a>
  • 銆婂叏閾捐矾鍘嬫祴缁忛獙銆?/a>

A/B 銆佺伆搴︺€佽摑缁挎祴璇?/h3>
  • 銆婃妧鏈共璐?| AB 娴嬭瘯鍜岀伆搴﹀彂甯冩帰绱㈠強瀹炶返銆?/a>
  • 銆妌ginx 鏍规嵁IP 杩涜鐏板害鍙戝竷銆?/a>
  • 銆婅摑缁块儴缃层€丄/B 娴嬭瘯浠ュ強鐏板害鍙戝竷銆?/a>

铏氭嫙鍖?/h2>
  • 銆奦PS鐨勪笁绉嶈櫄鎷熸妧鏈疧penVZ銆乆en銆並VM浼樼己鐐规瘮杈冦€?/a>

KVM

  • 銆奒VM璇﹁В锛屽お璇︾粏澶繁鍏ヤ簡锛岀粡鍏搞€?/a>
  • 銆娿€愬浘鏂囥€慘VM 铏氭嫙鏈哄畨瑁呰瑙c€?/a>

Xen

  • 銆奨en铏氭嫙鍖栧熀鏈師鐞嗚瑙c€?/a>

OpenVZ

  • 銆婂紑婧怢inux瀹瑰櫒 OpenVZ 蹇€熶笂鎵嬫寚鍗椼€?/a>

瀹瑰櫒鎶€鏈?/h2>

Docker

  • 銆婂嚑寮犲浘甯綘鐞嗚В docker 鍩烘湰鍘熺悊鍙婂揩閫熷叆闂ㄣ€?/a>
  • 銆奃ocker 鏍稿績鎶€鏈笌瀹炵幇鍘熺悊銆?/a>
  • 銆奃ocker 鏁欑▼銆?/a>

浜戞妧鏈?/h2>

OpenStack

  • 銆奜penStack鏋勬灦鐭ヨ瘑姊崇悊銆?/a>

DevOps

  • 銆婁竴鍒嗛挓鍛婅瘔浣犵┒绔烡evOps鏄粈涔堥锛熴€?/a>
  • 銆奃evOps璇﹁В銆?/a>

鏂囨。绠$悊

  • Confluence-鏀惰垂鏂囨。绠$悊绯荤粺
  • GitLab?
  • Wiki

涓棿浠?/h1>

Web Server

Nginx

  • 銆奛gnix鐨勫熀鏈涔?澶氳繘绋嬪拰Apache鐨勬瘮杈冦€?/a>

    • Nginx 閫氳繃寮傛闈為樆濉炵殑浜嬩欢澶勭悊鏈哄埗瀹炵幇楂樺苟鍙戙€侫pache 姣忎釜璇锋眰鐙崰涓€涓嚎绋嬶紝闈炲父娑堣€楃郴缁熻祫婧愩€?/li>
    • 浜嬩欢椹卞姩閫傚悎浜嶪O瀵嗛泦鍨嬫湇鍔?Nginx)锛屽杩涚▼鎴栫嚎绋嬮€傚悎浜嶤PU瀵嗛泦鍨嬫湇鍔?Apache)锛屾墍浠ginx閫傚悎鍋氬弽鍚戜唬鐞嗭紝鑰岄潪web鏈嶅姟鍣ㄤ娇鐢ㄣ€?/li>
  • 銆妌ginx涓嶢pache鐨勫姣斾互鍙婁紭缂虹偣銆?/a>

    • nginx鍙€傚悎闈欐€佸拰鍙嶅悜浠g悊锛屼笉閫傚悎澶勭悊鍔ㄦ€佽姹傘€?/li>

OpenResty

  • 瀹樻柟缃戠珯
  • 銆婃祬璋?OpenResty銆?/a>

    • 閫氳繃 Lua 妯″潡鍙互鍦∟ginx涓婅繘琛屽紑鍙戙€?/li>
  • agentzh 鐨?Nginx 鏁欑▼

Tengine

  • 瀹樻柟缃戠珯

Apache Httpd

  • 瀹樻柟缃戠珯

Tomcat

鏋舵瀯鍘熺悊

  • 銆奣OMCAT鍘熺悊璇﹁В鍙婅姹傝繃绋嬨€?/a>
  • 銆奣omcat鏈嶅姟鍣ㄥ師鐞嗚瑙c€?/a>
  • 銆奣omcat 绯荤粺鏋舵瀯涓庤璁℃ā寮?绗?1 閮ㄥ垎: 宸ヤ綔鍘熺悊銆?/a>
  • 銆婂洓寮犲浘甯︿綘浜嗚ВTomcat绯荤粺鏋舵瀯銆?/a>
  • 銆奐Boss vs. Tomcat: Choosing A Java Application Server銆?/a>

    • Tomcat 鏄交閲忕骇鐨?Serverlet 瀹瑰櫒锛屾病鏈夊疄鐜板叏閮?JEE 鐗规€э紙姣斿鎸佷箙鍖栧拰浜嬪姟澶勭悊锛夛紝浣嗗彲浠ラ€氳繃鍏朵粬缁勪欢浠f浛锛屾瘮濡係pring銆?/li>
    • Jboss 瀹炵幇鍏ㄩ儴浜咼EE鐗规€э紝杞欢寮€婧愬厤璐广€佹枃妗f敹璐广€?/li>

璋冧紭鏂规

  • 銆奣omcat 璋冧紭鏂规銆?/a>

    • 鍚姩NIO妯″紡锛堟垨鑰匒PR锛夛紱璋冩暣绾跨▼姹狅紱绂佺敤AJP杩炴帴鍣紙Nginx+tomcat鐨勬灦鏋勶紝涓嶉渶瑕丄JP锛夛紱
  • 銆妕omcat http鍗忚涓巃jp鍗忚銆?/a>
  • 銆夾JP涓嶩TTP姣旇緝鍜屽垎鏋愩€?/a>

    • AJP 鍗忚锛?009绔彛锛夌敤浜庨檷浣庡拰鍓嶇Server锛堝Apache锛岃€屼笖闇€瑕佹敮鎸丄JP鍗忚锛夌殑杩炴帴鏁?鍓嶇)锛岄€氳繃闀胯繛鎺ユ彁楂樻€ц兘銆?/li>
    • 骞跺彂楂樻椂锛孉JP鍗忚浼樹簬HTTP鍗忚銆?/li>

Jetty

  • 銆奐etty 鐨勫伐浣滃師鐞嗕互鍙婁笌 Tomcat 鐨勬瘮杈冦€?/a>
  • 銆妀etty鍜宼omcat浼樺娍姣旇緝銆?/a>

    • 鏋舵瀯姣旇緝:Jetty鐨勬灦鏋勬瘮Tomcat鐨勬洿涓虹畝鍗曘€?/li>
    • 鎬ц兘姣旇緝锛欽etty鍜孴omcat鎬ц兘鏂归潰宸紓涓嶅ぇ锛孞etty榛樿閲囩敤NIO缁撴潫鍦ㄥ鐞咺/O璇锋眰涓婃洿鍗犱紭鍔匡紝Tomcat榛樿閲囩敤BIO澶勭悊I/O璇锋眰锛孴omcat閫傚悎澶勭悊灏戞暟闈炲父绻佸繖鐨勯摼鎺ワ紝澶勭悊闈欐€佽祫婧愭椂鎬ц兘杈冨樊銆?/li>
    • 鍏朵粬鏂归潰锛欽etty鐨勫簲鐢ㄦ洿鍔犲揩閫燂紝淇敼绠€鍗曪紝瀵规柊鐨凷ervlet瑙勮寖鐨勬敮鎸佽緝濂?Tomcat 瀵笿EE鍜孲ervlet 鏀寔鏇村姞鍏ㄩ潰銆?/li>

缂撳瓨

  • 銆婄紦瀛樺け鏁堢瓥鐣ワ紙FIFO 銆丩RU銆丩FU涓夌绠楁硶鐨勫尯鍒級銆?/a>

鏈湴缂撳瓨

  • 銆奌ashMap鏈湴缂撳瓨銆?/a>
  • 銆奅hCache鏈湴缂撳瓨銆?/a>

    • 鍫嗗唴銆佸爢澶栥€佺鐩樹笁绾х紦瀛樸€?/li>
    • 鍙寜鐓х紦瀛樼┖闂村閲忚繘琛岃缃€?/li>
    • 鎸夌収鏃堕棿銆佹鏁扮瓑杩囨湡绛栫暐銆?/li>
  • 銆奊uava Cache銆?/a>

    • 绠€鍗曡交閲忋€佹棤鍫嗗銆佺鐩樼紦瀛樸€?/li>
  • 銆奛ginx鏈湴缂撳瓨銆?/a>
  • 銆奝agespeed鈥旀噿浜哄伐鍏凤紝鏈嶅姟鍣ㄧ鍔犻€熴€?/a>

瀹㈡埛绔紦瀛?/h2>
  • 銆婃祻瑙堝櫒绔紦瀛樸€?/a>

    • 涓昏鏄埄鐢?Cache-Control 鍙傛暟銆?/li>
  • 銆奌5 鍜岀Щ鍔ㄧ WebView 缂撳瓨鏈哄埗瑙f瀽涓庡疄鎴樸€?/a>

鏈嶅姟绔紦瀛?/h2>

Web缂撳瓨

  • nuster - nuster cache
  • varnish - varnish cache
  • squid - squid cache

Memcached

  • 銆奙emcached 鏁欑▼銆?/a>
  • 銆婃繁鍏ョ悊瑙emcached鍘熺悊銆?/a>

    • 閲囩敤澶氳矾澶嶇敤鎶€鏈彁楂樺苟鍙戞€с€?/li>
    • slab鍒嗛厤绠楁硶锛?memcached缁橲lab鍒嗛厤鍐呭瓨绌洪棿锛岄粯璁ゆ槸1MB銆傚垎閰嶇粰Slab涔嬪悗 鎶妔lab鐨勫垏鍒嗘垚澶у皬鐩稿悓鐨刢hunk锛孋hunk鏄敤浜庣紦瀛樿褰曠殑鍐呭瓨绌洪棿锛孋hunk 鐨勫ぇ灏忛粯璁ゆ寜鐓?.25鍊嶇殑閫熷害閫掑銆傚ソ澶勬槸涓嶄細棰戠箒鐢宠鍐呭瓨锛屾彁楂業O鏁堢巼锛屽潖澶勬槸浼氭湁涓€瀹氱殑鍐呭瓨娴垂銆?/li>
  • 銆奙emcached杞欢宸ヤ綔鍘熺悊銆?/a>
  • 銆奙emcache鎶€鏈垎浜細浠嬬粛銆佷娇鐢ㄣ€佸瓨鍌ㄣ€佺畻娉曘€佷紭鍖栥€佸懡涓巼銆?/a>
  • 銆妋emcache 涓?add 銆?set 銆乺eplace 鐨勫尯鍒€?/a>

    • 鍖哄埆鍦ㄤ簬褰搆ey瀛樺湪杩樻槸涓嶅瓨鍦ㄦ椂锛岃繑鍥炲€兼槸true鍜宖alse鐨勩€?/li>
  • 銆妋emcached鍏ㄩ潰鍓栨瀽銆?/strong>

Redis

  • 銆奟edis 鏁欑▼銆?/a>
  • 銆妑edis搴曞眰鍘熺悊銆?/a>

    • 浣跨敤 ziplist 瀛樺偍閾捐〃锛寊iplist鏄竴绉嶅帇缂╅摼琛紝瀹冪殑濂藉鏄洿鑳借妭鐪佸唴瀛樼┖闂达紝鍥犱负瀹冩墍瀛樺偍鐨勫唴瀹归兘鏄湪杩炵画鐨勫唴瀛樺尯鍩熷綋涓殑銆?/li>
    • 浣跨敤 skiplist(璺宠穬琛?鏉ュ瓨鍌ㄦ湁搴忛泦鍚堝璞°€佹煡鎵句笂鍏堜粠楂楲evel鏌ヨ捣銆佹椂闂村鏉傚害鍜岀孩榛戞爲鐩稿綋锛屽疄鐜板鏄擄紝鏃犻攣銆佸苟鍙戞€уソ銆?/li>
  • 銆奟edis鎸佷箙鍖栨柟寮忋€?/a>

    • RDB鏂瑰紡锛氬畾鏈熷浠藉揩鐓э紝甯哥敤浜庣伨闅炬仮澶嶃€備紭鐐癸細閫氳繃fork鍑虹殑杩涚▼杩涜澶囦唤锛屼笉褰卞搷涓昏繘绋嬨€丷DB 鍦ㄦ仮澶嶅ぇ鏁版嵁闆嗘椂鐨勯€熷害姣?AOF 鐨勬仮澶嶉€熷害瑕佸揩銆傜己鐐癸細浼氫涪鏁版嵁銆?/li>
    • AOF鏂瑰紡锛氫繚瀛樻搷浣滄棩蹇楁柟寮忋€備紭鐐癸細鎭㈠鏃舵暟鎹涪澶卞皯锛岀己鐐癸細鏂囦欢澶э紝鍥炲鎱€?/li>
    • 涔熷彲浠ヤ袱鑰呯粨鍚堜娇鐢ㄣ€?/li>
  • 銆婂垎甯冨紡缂撳瓨--搴忓垪3--鍘熷瓙鎿嶄綔涓嶤AS涔愯閿併€?/a>

鏋舵瀯

  • 銆奟edis鍗曠嚎绋嬫灦鏋勩€?/a>

鍥炴敹绛栫暐

  • 銆妑edis鐨勫洖鏀剁瓥鐣ャ€?/a>

Tair

  • 瀹樻柟缃戠珯
  • 銆奣air鍜孯edis鐨勫姣斻€?/a>
  • 鐗圭偣锛氬彲浠ラ厤缃浠借妭鐐规暟鐩紝閫氳繃寮傛鍚屾鍒板浠借妭鐐?/li>
  • 涓€鑷存€ash绠楁硶銆?/li>
  • 鏋舵瀯锛氬拰Hadoop 鐨勮璁℃€濇兂绫讳技锛屾湁Configserver锛孌ataServer锛孋onfigserver 閫氳繃蹇冭烦鏉ユ娴嬶紝Configserver涔熸湁涓诲鍏崇郴銆?/li>

鍑犵瀛樺偍寮曟搸:

  • MDB锛屽畬鍏ㄥ唴瀛樻€э紝鍙互鐢ㄦ潵瀛樺偍Session绛夋暟鎹€?/li>
  • Rdb锛堢被浼间簬Redis锛夛紝杞婚噺鍖栵紝鍘婚櫎浜哸of涔嬬被鐨勬搷浣滐紝鏀寔Restfull鎿嶄綔
  • LDB锛圠evelDB瀛樺偍寮曟搸锛夛紝鎸佷箙鍖栧瓨鍌紝LDB 浣滀负rdb鐨勬寔涔呭寲锛実oogle瀹炵幇锛屾瘮杈冮珮鏁堬紝鐞嗚鍩虹鏄疞SM(Log-Structured-Merge Tree)绠楁硶锛岀幇鍦ㄥ唴瀛樹腑淇敼鏁版嵁锛岃揪鍒颁竴瀹氶噺鏃讹紙鍜屽唴瀛樻眹鎬荤殑鏃ф暟鎹竴鍚屽啓鍏ョ鐩橈級鍐嶅啓鍏ョ鐩橈紝瀛樺偍鏇村姞楂樻晥锛屽幙姣斿柣Hash绠楁硶銆?/li>
  • Tair閲囩敤鍏变韩鍐呭瓨鏉ュ瓨鍌ㄦ暟鎹紝濡傛灉鏈嶅姟鎸傛帀锛堥潪鏈嶅姟鍣級锛岄噸鍚湇鍔′箣鍚庯紝鏁版嵁浜︾劧杩樺湪銆?/li>

娑堟伅闃熷垪

  • 銆婃秷鎭槦鍒?鎺?鎷夋ā寮忓涔?& ActiveMQ鍙奐MS瀛︿範銆?/a>

    • RabbitMQ 娑堣垂鑰呴粯璁ゆ槸鎺ㄦā寮忥紙涔熸敮鎸佹媺妯″紡锛夈€?/li>
    • Kafka 榛樿鏄媺妯″紡銆?/li>
    • Push鏂瑰紡锛氫紭鐐规槸鍙互灏藉彲鑳藉揩鍦板皢娑堟伅鍙戦€佺粰娑堣垂鑰咃紝缂虹偣鏄鏋滄秷璐硅€呭鐞嗚兘鍔涜窡涓嶄笂锛屾秷璐硅€呯殑缂撳啿鍖哄彲鑳戒細婧㈠嚭銆?/li>
    • Pull鏂瑰紡锛氫紭鐐规槸娑堣垂绔彲浠ユ寜澶勭悊鑳藉姏杩涜鎷夊幓锛岀己鐐规槸浼氬鍔犳秷鎭欢杩熴€?/li>
  • 銆奒afka銆丷abbitMQ銆丷ocketMQ绛夋秷鎭腑闂翠欢鐨勫姣?鈥斺€?娑堟伅鍙戦€佹€ц兘鍜屽尯鍒€?/a>

娑堟伅鎬荤嚎

娑堟伅鎬荤嚎鐩稿綋浜庡湪娑堟伅闃熷垪涔嬩笂鍋氫簡涓€灞傚皝瑁咃紝缁熶竴鍏ュ彛锛岀粺涓€绠℃帶銆佺畝鍖栨帴鍏ユ垚鏈€?/p>

  • 銆婃秷鎭€荤嚎VS娑堟伅闃熷垪銆?/a>

娑堟伅鐨勯『搴?/h3>
  • 銆婂浣曚繚璇佹秷璐硅€呮帴鏀舵秷鎭殑椤哄簭銆?/a>

RabbitMQ

鏀寔浜嬪姟锛屾帹鎷夋ā寮忛兘鏄敮鎸併€侀€傚悎闇€瑕佸彲闈犳€ф秷鎭紶杈撶殑鍦烘櫙銆?/p>

  • 銆奟abbitMQ鐨勫簲鐢ㄥ満鏅互鍙婂熀鏈師鐞嗕粙缁嶃€?/a>
  • 銆婃秷鎭槦鍒椾箣 RabbitMQ銆?/a>
  • 銆奟abbitMQ涔嬫秷鎭‘璁ゆ満鍒讹紙浜嬪姟+Confirm锛夈€?/a>

RocketMQ

Java瀹炵幇锛屾帹鎷夋ā寮忛兘鏄敮鎸侊紝鍚炲悙閲忛€婁簬Kafka銆傚彲浠ヤ繚璇佹秷鎭『搴忋€?/p>

  • 銆奟ocketMQ 瀹炴垬涔嬪揩閫熷叆闂ㄣ€?/a>
  • 銆奟ocketMQ 婧愮爜瑙f瀽銆?/a>

ActiveMQ

绾疛ava瀹炵幇锛屽吋瀹笿MS锛屽彲浠ュ唴宓屼簬Java搴旂敤涓€?/p>

  • 銆夾ctiveMQ娑堟伅闃熷垪浠嬬粛銆?/a>

Kafka

楂樺悶鍚愰噺銆侀噰鐢ㄦ媺妯″紡銆傞€傚悎楂業O鍦烘櫙锛屾瘮濡傛棩蹇楀悓姝ャ€?/p>

  • 瀹樻柟缃戠珯
  • 銆婂悇娑堟伅闃熷垪瀵规瘮锛孠afka娣卞害瑙f瀽锛屼紬浜烘帹鑽愶紝绮惧僵濂芥枃锛併€?/a>
  • 銆奒afka鍒嗗尯鏈哄埗浠嬬粛涓庣ず渚嬨€?/a>

Redis 娑堟伅鎺ㄩ€?/h3>

鐢熶骇鑰呫€佹秷璐硅€呮ā寮忓畬鍏ㄦ槸瀹㈡埛绔涓猴紝list 鍜?鎷夋ā寮忓疄鐜帮紝闃诲绛夊緟閲囩敤 blpop 鎸囦护銆?/p>

  • 銆奟edis瀛︿範绗旇涔嬪崄锛歊edis鐢ㄤ綔娑堟伅闃熷垪銆?/a>

ZeroMQ

TODO

瀹氭椂璋冨害

鍗曟満瀹氭椂璋冨害

  • 銆妉inux瀹氭椂浠诲姟cron閰嶇疆銆?/a>
  • 銆奓inux cron杩愯鍘熺悊銆?/a>

    • fork 杩涚▼ + sleep 杞
  • 銆奞uartz浣跨敤鎬荤粨銆?/a>
  • 銆奞uartz婧愮爜瑙f瀽 ---- 瑙﹀彂鍣ㄦ寜鏃跺惎鍔ㄥ師鐞嗐€?/a>
  • 銆妐uartz鍘熺悊鎻鍜屾簮鐮佽В璇汇€?/a>

    • 瀹氭椂璋冨害鍦?QuartzSchedulerThread 浠g爜涓紝while()鏃犻檺寰幆锛屾瘡娆″惊鐜彇鍑烘椂闂村皢鍒扮殑trigger锛岃Е鍙戝搴旂殑job锛岀洿鍒拌皟搴﹀櫒绾跨▼琚叧闂€?/li>

鍒嗗竷寮忓畾鏃惰皟搴?/h3>
  • 銆婅繖浜涗紭绉€鐨勫浗浜у垎甯冨紡浠诲姟璋冨害绯荤粺锛屼綘鐢ㄨ繃鍑犱釜锛熴€?/a>

    • opencron銆丩TS銆乆XL-JOB銆丒lastic-Job銆乁ncode-Schedule銆丄ntares
  • 銆奞uartz浠诲姟璋冨害鐨勫熀鏈疄鐜板師鐞嗐€?/a>

    • Quartz闆嗙兢涓紝鐙珛鐨凲uartz鑺傜偣骞朵笉涓庡彟涓€鍏剁殑鑺傜偣鎴栨槸绠$悊鑺傜偣閫氫俊锛岃€屾槸閫氳繃鐩稿悓鐨勬暟鎹簱琛ㄦ潵鎰熺煡鍒板彟涓€Quartz搴旂敤鐨?/li>
  • 銆奅lastic-Job-Lite 婧愮爜瑙f瀽銆?/a>
  • 銆奅lastic-Job-Cloud 婧愮爜瑙f瀽銆?/a>

RPC

  • 銆婁粠闆跺紑濮嬪疄鐜癛PC妗嗘灦 - RPC鍘熺悊鍙婂疄鐜般€?/a>

    • 鏍稿績瑙掕壊锛歋erver: 鏆撮湶鏈嶅姟鐨勬湇鍔℃彁渚涙柟銆丆lient: 璋冪敤杩滅▼鏈嶅姟鐨勬湇鍔℃秷璐规柟銆丷egistry: 鏈嶅姟娉ㄥ唽涓庡彂鐜扮殑娉ㄥ唽涓績銆?/li>
  • 銆婂垎甯冨紡RPC妗嗘灦鎬ц兘澶ф瘮鎷?dubbo銆乵otan銆乺pcx銆乬RPC銆乼hrift鐨勬€ц兘姣旇緝銆?/a>

Dubbo

  • 瀹樻柟缃戠珯
  • dubbo瀹炵幇鍘熺悊绠€鍗曚粙缁?/a>

SPI
TODO

Thrift

  • 瀹樻柟缃戠珯
  • 銆奣hrift RPC璇﹁В銆?/a>

    • 鏀寔澶氳瑷€锛岄€氳繃涓棿璇█瀹氫箟鎺ュ彛銆?/li>

gRPC

鏈嶅姟绔彲浠ヨ璇佸姞瀵嗭紝鍦ㄥ缃戠幆澧冧笅锛屽彲浠ヤ繚璇佹暟鎹畨鍏ㄣ€?/p>

  • 瀹樻柟缃戠珯
  • 銆婁綘搴旇鐭ラ亾鐨凴PC鍘熺悊銆?/a>

鏁版嵁搴撲腑闂翠欢

Sharding Jdbc

  • 瀹樼綉
  • 婧愮爜瑙f瀽

鏃ュ織绯荤粺

鏃ュ織鎼滈泦

  • 銆婁粠闆跺紑濮嬫惌寤轰竴涓狤LKB鏃ュ織鏀堕泦绯荤粺銆?/a>
  • 銆婄敤ELK鎼缓绠€鍗曠殑鏃ュ織鏀堕泦鍒嗘瀽绯荤粺銆?/a>
  • 銆婃棩蹇楁敹闆嗙郴缁?鎺㈢┒銆?/a>

閰嶇疆涓績

  • Apollo - 鎼虹▼寮€婧愮殑閰嶇疆涓績搴旂敤

    • Spring Boot 鍜?Spring Cloud
    • 鏀寔鎺ㄣ€佹媺妯″紡鏇存柊閰嶇疆
    • 鏀寔澶氱璇█
  • 銆婂熀浜巣ookeeper瀹炵幇缁熶竴閰嶇疆绠$悊銆?/a>
  • 銆?Spring Cloud Config 鍒嗗竷寮忛厤缃腑蹇冧娇鐢ㄦ暀绋嬨€?/a>

servlet 3.0 寮傛鐗规€у彲鐢ㄤ簬閰嶇疆涓績鐨勫鎴风

  • 銆妔ervlet3.0 鏂扮壒鎬р€斺€斿紓姝ュ鐞嗐€?/a>

API 缃戝叧

涓昏鑱岃矗锛氳姹傝浆鍙戙€佸畨鍏ㄨ璇併€佸崗璁浆鎹€佸鐏俱€?/p>

  • 銆夾PI缃戝叧閭d簺鍎裤€?/a>
  • 銆婅皥API缃戝叧鐨勮儗鏅€佹灦鏋勪互鍙婅惤鍦版柟妗堛€?/a>
  • 銆婁娇鐢╖uul鏋勫缓API Gateway銆?/a>
  • 銆奡pring Cloud Gateway 婧愮爜瑙f瀽銆?/a>
  • 銆奌TTP API缃戝叧閫夋嫨涔嬩竴Kong浠嬬粛銆?/a>

缃戠粶

鍗忚

OSI 涓冨眰鍗忚

  • 銆奜SI涓冨眰鍗忚妯″瀷銆乀CP/IP鍥涘眰妯″瀷瀛︿範绗旇銆?/a>

TCP/IP

  • 銆婃繁鍏ユ祬鍑?TCP/IP 鍗忚銆?/a>
  • 銆奣CP鍗忚涓殑涓夋鎻℃墜鍜屽洓娆℃尌鎵嬨€?/a>

HTTP

  • 銆奾ttp鍗忚璇﹁В(瓒呰缁?銆?/a>

HTTP2.0

  • 銆奌TTP 2.0 鍘熺悊璇︾粏鍒嗘瀽銆?/a>
  • 銆奌TTP2.0鐨勫熀鏈崟浣嶄负浜岃繘鍒跺抚銆?/a>

    • 鍒╃敤浜岃繘鍒跺抚璐熻矗浼犺緭銆?/li>
    • 澶氳矾澶嶇敤銆?/li>

HTTPS

  • 銆奾ttps鍘熺悊閫氫織浜嗚В銆?/a>

    • 浣跨敤闈炲绉板姞瀵嗗崗鍟嗗姞瀵嗙畻娉?/li>
    • 浣跨敤瀵圭О鍔犲瘑鏂瑰紡浼犺緭鏁版嵁
    • 浣跨敤绗笁鏂规満鏋勭鍙戠殑璇佷功锛屾潵鍔犲瘑鍏挜锛岀敤浜庡叕閽ョ殑瀹夊叏浼犺緭銆侀槻姝㈣涓棿浜轰覆鏀广€?/li>
  • 銆婂叓澶у厤璐筍SL璇佷功-缁欎綘鐨勭綉绔欏厤璐规坊鍔燞ttps瀹夊叏鍔犲瘑銆?/a>

缃戠粶妯″瀷

  • 銆妛eb浼樺寲蹇呴』浜嗚В鐨勫師鐞嗕箣I/o鐨勪簲绉嶆ā鍨嬪拰web鐨勪笁绉嶅伐浣滄ā寮忋€?/a>

    • 浜旂I/O妯″瀷锛氶樆濉濱/O锛岄潪闃诲I/O锛孖/O澶嶇敤銆佷簨浠?淇″彿)椹卞姩I/O銆佸紓姝/O锛屽墠鍥涚I/O灞炰簬鍚屾鎿嶄綔锛孖/O鐨勭涓€闃舵涓嶅悓銆佺浜岄樁娈电浉鍚岋紝鏈€鍚庣殑涓€绉嶅垯灞炰簬寮傛鎿嶄綔銆?/li>
    • 涓夌 Web Server 宸ヤ綔鏂瑰紡锛歅refork(澶氳繘绋?銆乄orker鏂瑰紡(绾跨▼鏂瑰紡)銆丒vent鏂瑰紡銆?/li>
  • 銆妔elect銆乸oll銆乪poll涔嬮棿鐨勫尯鍒€荤粨銆?/a>