@jvm

Stories List
@lvlaotou

深入淺出Java多線程(十三):阻塞隊列

引言 大家好,我是你們的老夥計秀才!今天帶來的是[深入淺出Java多線程]系列的第十一篇內容:AQS(AbstractQueuedSynchronizer)。大家覺得有用請點贊,喜歡請關注!秀才在此謝過大家了!!! 在現代多核CPU環境中,多線程編程已成為提升系統性能和併發處理能力的關鍵手段。然而,當多個線程共享同一資源或訪問臨界區時,如何有效地控制線程間的執行順序以保證數據一致性及避免競態條件

lvlaotou Avatar

@lvlaotou

Nickname 呂秀才

@huaweiclouddeveloper

面試必問:Java 垃圾回收機制

摘要:垃圾回收機制是守護線程的最佳示例,因為它始終在後台運行。 本文分享自華為雲社區《一文帶你瞭解Java 中的垃圾回收機制》,作者:海擁。 介紹 • 在 C/C++ 中,程序員負責對象的創建和銷燬。通常程序員會忽略無用對象的銷燬。由於這種疏忽,在某些時候,為了創建新對象,可能沒有足夠的內存可用,整個程序將異常終止,導致OutOfMemoryErrors。 • 但是在 Java 中,程

huaweiclouddeveloper Avatar

@huaweiclouddeveloper

Nickname 華為雲開發者聯盟

@kuaishoutech

四年匠心磨礪,快手系統軟件技術創新與領域演進之路

一、系統軟件技術的核心價值與面臨挑戰 系統軟件作為軟件架構的基石,扮演着連接軟件與硬件的橋樑角色,位於整個軟件生態的最底層,處於關鍵核心的位置。系統軟件最為顯著的特徵在於其規模效應,隨着服務器體量的增加,系統軟件研發的價值愈發凸顯。 首先,系統軟件技術能夠顯著提升服務器資源的利用率,實現翻倍效果,同時性能也能提升 30%~50%,從而大幅降低公司的服務器資源成本。其次,專業的系統軟件團隊能夠迅速定

kuaishoutech Avatar

@kuaishoutech

Nickname 快手技術

@jinyeyoudianerliang

JVM內存模型及分區詳解

JVM內存模型及分區詳解 JVM內存模型主要分為以下幾個核心區域,每個區域有特定的用途和存儲內容: 1. 程序計數器(Program Counter Register) 存儲內容: 當前線程執行的字節碼行號指示器 對於Java方法,記錄正在執行的虛擬機字節碼指令的地址 對於Native方法,值為undefined(未定義) 特點: 線程私有,每個線程都有獨立的程序計數器 內存空間最

jinyeyoudianerliang Avatar

@jinyeyoudianerliang

Nickname 今夜有點兒涼

@jinyeyoudianerliang

Java堆內存分區及各自特點

Java堆內存分區及各自特點 Java堆內存主要分為新生代(Young Generation)和老年代(Old Generation),其中新生代又進一步分為Eden區和兩個Survivor區(From和To)。這種分區設計是為了優化垃圾回收效率,基於對象生命週期的不同特性。 1. Eden區(伊甸園) 特點: 對象初始分配區域:新創建的對象(除了大對象)首先被分配到Eden區 空間佔比:在

jinyeyoudianerliang Avatar

@jinyeyoudianerliang

Nickname 今夜有點兒涼

@mulavar

【Flink】TaskManager 內存模型及計算邏輯詳解

本文旨在詳解 Flink TaskManager 的內存模型以及其各部分內存佔比的計算邏輯。首先,結合官網展示了當前 Flink 的內存模型,並在之後結合 JVM 自身內存模型和管理機制結合講解 Flink 內存模型的各個部分,最後結合源碼解釋了各部分內存佔比的計算邏輯。 1 內存模型組成部分 本節摘自官網:https://nightlies.apache.org/flink/flink-docs

mulavar Avatar

@mulavar

Nickname Mulavar

@youqingyouyidedalianmao

Java 25正式發佈,重要特性詳解(附代碼示例):靈活構造函數體、模塊導入聲明、AOT方法分析等

日前,Oracle宣佈正式發佈最新的長期支持(LTS)版本Java 25,這是備受歡迎的編程語言和開發平台的全新版本。Java 25 (Oracle JDK 25) 提供了數千項改進,不僅可顯著提高開發人員的工作效率,還增強了平台的性能、穩定性和安全性,以幫助企業加快業務增長。 本文將深入解析Java 25包含的新特性及其對Java開發者的意義,以及最新的 Java LTS 版本如何影響整個Jav

youqingyouyidedalianmao Avatar

@youqingyouyidedalianmao

Nickname 龍智DevSecOps

@aresxue

“傻傻”的JAVA編譯器

故事是從一個問題開始的:為什麼 Java 中 2 * (i * i) 比 2 * i * i更快? 猛地一看,我還以為有人在釣魚,這倆玩意不應該是一模一樣嗎?第二反應是計算結果溢出了int值所以導致了這個差異,於是我掏出JMH這個利器準備開始一輪驗證,為了避免干擾,構造了不同的測試用例集用於縱向與橫向的比較。 @BenchmarkMode(Mode.AverageTime)

aresxue Avatar

@aresxue

Nickname Aresxue

@aresxue

聊聊為什麼java會有這麼多的字節碼改寫方式(jdk/cglib/asm/javasist)?

字節碼改寫方式的多樣性主要源於不同的使用場景、需求和設計哲學。 以下兩個方面是比較重要的原因: https://www.zhihu.com/question/7501915796/answer/61918375697 學習和使用成本 精細化控制能力與性能需求 首先説一下jdk代理,它是在2000年5月發佈的jdk 1.3中引入的,這裏對jdk代理就不做過於詳細的介紹了,它的出現主要是為了提

aresxue Avatar

@aresxue

Nickname Aresxue

@aresxue

Java字節碼改寫之asm進階使用

在java世界裏,字節碼改寫 + 反射可以讓你變成“上帝”,你可以完成任何你想做的事情,而字節碼改寫中asm是當之無愧的老大哥,對字節碼認識不深的小夥伴可以看看我這篇文章 https://www.zhihu.com/question/7501915796/answer/61918375697 本文的目的是現有互聯網上asm的資料不夠體系和細緻,其和傳統java編程也非常的不一樣,使用時有很多需要注

aresxue Avatar

@aresxue

Nickname Aresxue

@aresxue

Java字節碼與流量回放

字節碼改寫/增強——Java帝國的DNA + 流量回放的魔法棒 What(是什麼) 在jvm中大約有200條左右的指令。這些指令包括各種操作,用於信息加載、存儲、算術計算、類型轉換、對象創建、調用方法、控制流管理和異常處理等,是整個java世界的基石。所謂的字節碼增強/改寫就是在不修改Java源代碼的情況下,通過直接操作編譯後的字節碼來動態修改程序行為。從實現角度字節碼其實是沒有增強這麼一説的,只

aresxue Avatar

@aresxue

Nickname Aresxue