大多 IT 運營支撐同學都有過深夜業務應用突然故障的經歷,監控系統準確告警,但是白天筋疲力盡的運維同學在熟睡中,經常會遺漏告警提醒;往往是接到主管電話(用戶投訴了)才處理。有什么辦法解決該問題呢?大多人...
什么是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是世界上被...
前言 設計模式可能是博客圈最熱門的話題之一。但是,用來說明每個設計模式的例子通常不是很形象。為了挽救這一點,這篇博客將用一個簡單有效的例子來解釋組合模式。 我們不會再重復解釋這個模型的概念。唯一需要記...
前言 之前面試的時候問了我是否了解JDK10的變化,一時回答不出來,所以只回答了JDK8中的函數式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請參考這里。在所有的JEP中,JEP-286在社區...
在Java中,BlockingQueue接口位于java.util.concurrent包下。阻塞隊列主要用來線程安全的實現生產者-消費者模型。他們可以使用于多個生產者和多個消費者的場景中。 我們可以在各種論壇和文章中找到BlockingQueue的范例。在這篇文章...
為什么要額外寫一篇文章來研究volatile呢?是因為這可能是并發中最令人困惑以及最被誤解的結構。我看過不少解釋volatile的博客,但是大多數要么不完整,要么難以理解。我會從并發中最重要的一些因素開始說起: 原子性原...
軟件設計原則 這篇文章主要討論如何以健壯的方式應對變化的需求,從而保持良好的編程習慣。 前言 軟件設計是開發周期中最重要的一個環節。在實現彈性和靈活的設計上花的時間越多,未來在面對需求變更時節約的時間...
什么是仿射變換 一組設備無關的坐標被用來將所有的坐標信息傳遞給Graphics2D對象。AffineTransform對象作為Graphics2D對象狀態的一部分。該對象定義了如何將用戶空間的坐標轉化為設備空間的設備相關的坐標點。 AffineTransform類代...
前言 上一篇文章請參考貓頭鷹的深夜翻譯:核心JAVA并發(一) 安全發布 發布一個對象是指該對象的引用對當前的域之外也可見(比如,從getter方法中獲取一個引用)。要確保一個對象被安全的發布(即在初始化完成之后發布),...
簡介 從創建以來,JAVA就支持核心的并發概念如線程和鎖。這篇文章會幫助從事多線程編程的JAVA開發人員理解核心的并發概念以及如何使用它們。 (博主將在其中加上自己的理解以及自己想出的例子作為補充) 概念 原子性...
前言 首先,這篇文章沒有進行任何的日志功能的詳細介紹,而是對日志提出了幾種最佳實踐。適合對日志記錄有所了解的同學閱讀。下面是正文: JAVA日志管理既是一門科學,又是一門藝術。科學的部分是指了解寫日志的工...
前言 這篇文章探索了現有的各種JAVA緩存基數,它們對各種場景下提高應用的性能起著重要的作用。 近十年來,信息技術極高的提升了業務流程,它已經成為了全球企業的戰略性方案。它從可有可無演變到現在的不可...
ChatGPT和Sora等AI大模型應用,將AI大模型和算力需求的熱度不斷帶上新的臺階。哪里可以獲得...
大模型的訓練用4090是不合適的,但推理(inference/serving)用4090不能說合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關性能圖表。同時根據訓練、推理能力由高到低做了...