本文簡介 WeakHashMap類概覽 WeakHashMap類構造器總結 WeakHashMap類構造方法 WeakHasjMap類使用舉例 1. WeakHashMap類概覽 WeakHashMap是一個實現了Map接口,并且鍵為weak型的哈希表。WeakHashMap中的條目不再被正常使用時,會被自動刪除。...
前言 這周我準備介紹一個有趣的但是很少使用的方法 按照合約編程,又稱為合約編程,是一種軟件設計的方法。它規定了軟件設計師應該為軟件組件定義正式,精確和可驗證的接口規范,將常規的抽象數據類型擴展為前置條...
前言 本篇文章重點討論JDK9中添加的靜態方法,requireNonNullElse和requireNonNullElseGet。 正文 JDK9在Object類中新添加了兩個靜態方法,requreNonNullElse(T, T)和 requireNonNullElseGet(T obj,Supplier
什么是Java Development Kit (JDK)? JDK通常用來開發Java應用和插件。基本上可以認為是一個軟件開發環境。JDK包含Java Runtime Environment(JRE),JRE包含加載器/解釋器,編譯器(javac),文檔生成器(Javadoc),打包功能(jar)和其它在開發中...
題目要求 在我們深入了解CAS(Compare And Swap)策略以及它是如何在AtomicInteger這樣的原子構造器中使用的,首先來看一下這段代碼: public class MyApp { private volatile int count = 0; public void upateVisitors() { ++count; //increm...
2000年的時候,Douglas Crockford聲明JavaScript是最被誤解的編程語言。這種誤解來源于不良的命名規范,錯誤設計,非標準模式等等。因此,誤解幾乎是與之俱來的。 我也在關于Restful架構上發表了一個相似的意見:REST是世界上被...
前言 設計模式可能是博客圈最熱門的話題之一。但是,用來說明每個設計模式的例子通常不是很形象。為了挽救這一點,這篇博客將用一個簡單有效的例子來解釋組合模式。 我們不會再重復解釋這個模型的概念。唯一需要記...
過去幾年容器逐漸成為了打包和部署代碼的流行的方式。容器鏡像解決很多現有的打包和部署工具所帶來的問題,初次以外,還為我們提供了構建分布式應用的全新的思路。就如SOA提倡將應用拆分為模塊化的內聚的服務,容...
前言 之前面試的時候問了我是否了解JDK10的變化,一時回答不出來,所以只回答了JDK8中的函數式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請參考這里。在所有的JEP中,JEP-286在社區...
在Java中,BlockingQueue接口位于java.util.concurrent包下。阻塞隊列主要用來線程安全的實現生產者-消費者模型。他們可以使用于多個生產者和多個消費者的場景中。 我們可以在各種論壇和文章中找到BlockingQueue的范例。在這篇文章...
前言 這篇博客回顧JAVA8的CompletionStageAPI以及其在JAVA庫中的標準實現CompletableFuture。將會通過幾個例子來展示API的各種行為。 因為CompletableFuture是CompletionInterface接口的實現,所以我們首先要了解該接口的契約。它代表某個同步...
前言 上一篇文章請參考貓頭鷹的深夜翻譯:核心JAVA并發(一) 安全發布 發布一個對象是指該對象的引用對當前的域之外也可見(比如,從getter方法中獲取一個引用)。要確保一個對象被安全的發布(即在初始化完成之后發布),...
為什么要額外寫一篇文章來研究volatile呢?是因為這可能是并發中最令人困惑以及最被誤解的結構。我看過不少解釋volatile的博客,但是大多數要么不完整,要么難以理解。我會從并發中最重要的一些因素開始說起: 原子性原...
軟件設計原則 這篇文章主要討論如何以健壯的方式應對變化的需求,從而保持良好的編程習慣。 前言 軟件設計是開發周期中最重要的一個環節。在實現彈性和靈活的設計上花的時間越多,未來在面對需求變更時節約的時間...
ChatGPT和Sora等AI大模型應用,將AI大模型和算力需求的熱度不斷帶上新的臺階。哪里可以獲得...
大模型的訓練用4090是不合適的,但推理(inference/serving)用4090不能說合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關性能圖表。同時根據訓練、推理能力由高到低做了...