在 Java 的多線程操作中,Concurrent Queue 是一種非常重要的容器,在共享資源的同時也能夠幫我們進行流程控制。
Java 的 Concurrent Queue 可以分為兩類,分別是 Blocking Queue 以及 Non Blocking Queue,兩種都是線程安全的,文章的最後會用 Blocking Queue 來實作 Producer Consumer Problem !

Consumer Producer

閱讀全文 »

Set

Set 的關係圖如下:
Java Set Interface

比較常用的:

  • HashSet: 不保證保存順序,速度最快
  • LinkedHashSet: 保存順序與存入順序相同
  • TreeSet: 依元素的大小排序,存入的元素必須是可比較的
閱讀全文 »

Collection

Collection 是 Java 中用來存儲、操作數據結構的一種框架,在此之下提供了許多實用的 Interface,包括 ListQueue 以及 Set (Map 是分開的)。

Java Collection

閱讀全文 »

Java OOP

Java 是一個物件導向的程式語言,重點在於如何定義物件之間的互動,Object Oriented Programming (OOP) 的三大特性分別是: Encapsulation (封裝)Inheritance (繼承)Polymorphism (多型)

閱讀全文 »

JVM, JRE & JDK

JVM, JRE & JDK

Java vs C

當開發 C 或 C++ 程式時,通常會先將原始碼透過編譯器轉換成目標機器可以理解的 Object Code。這個 Object Code 是特定於目標機器架構的,因此在不同的硬體平台上可能會產生不同的機器碼。因此,當將程式移植到不同的機器或架構時,通常需要重新編譯原始碼以生成適用於該特定平台的新 Object Code。

閱讀全文 »

strategies

這篇文章簡單紀錄了常見的五種部署策略: Big Bang Deployment、Rolling Deployment (滾動部署)、Blue-Green Deployment (藍綠部署)、Canary Deployment (金絲雀部署) 與 Shadow Deployment (影子部署)。

閱讀全文 »

bloom-filter

Summary

  • 用途: 用來快速判斷元素是否存在於一個集合中
  • 優點: 快速、節省空間
  • 缺點: 可能有 false positive (不存在但判定為存在)
  • 應用:
    • Check Duplicate: name、email 等是否已被使用
    • Filters: 過濾惡意請求 (ex: Cache penetration)、垃圾郵件等
閱讀全文 »
0%