(未完結)階段小總結(一)——大數據與Java

jdk8-21特性

核心特征:

(8)lambda,stream api,optional,方法引用,函數接口,默認方法,新時間Api,函數式接口,并行流,ComletableFuture。

(9)模塊系統,jshell命令工具直接寫java代碼,集合的of方法,接口的private方法,Stream的takeWhile和dropWhile,多版本兼容jar,optional新增ifPresentOfElse(),or(),更強大的ProcessHandle獲取進程信息,響應式流。

(10)var局部變量類型推斷,不可變集合的增強(CopyOf),Optional.orElseThrow(),并行全垃圾回收器(G1),DK默認包含CA根證書,支持TLS安全通信,?線程本地握手,版本號改為基于發布周期(如10.0.1),非之前的1.8.0_291格式

(11)HTTP Client API(正式版),允許在Lambda表達式中使用var聲明參數(需顯式注解@NonNull等),字符串增強方法isBlank()lines()repeat(),新的文件讀寫方法(Files類),直接運行.java文件(無需先編譯),Epsilon垃圾回收器,JVM內部優化,允許嵌套類直接訪問彼此的私有成員,JVM新增CONSTANT_Dynamic常量池類型,提升動態語言支持,移除Java EE和CORBA模塊(如javax.xml.ws),原商業版JFR成為開源功能,用于低開銷性能監控。

(12-16)簡化switch語法,支持返回值和多標簽匹配,Shenandoah GC低停頓時間的垃圾回收器,適合大堆內存應用,Microbenchmark Suite(JMH集成)JDK內置微基準測試工具,

簡化多行字符串書寫,避免轉義符String json = """ { "name": "Java", "version": 13 } """;動態CDS歸檔,底層NIO實現優化,提升性能,instanceof模式匹配(預覽)直接類型轉換,減少冗余代碼,Record類(預覽),NullPointerException增強,明確提示NPE發生的具體變量,ZGC(生產就緒)。

(17)record類,密封類,隱藏類,模式匹配,文本塊,swith增強,新ZGC/Shenandoah GC,棄用Applet API,強封裝JDK內部API,偽隨機數生成器(新API),移除實驗性AOT和JIT編譯器,外部函數和內存API(孵化器模塊)

(18-20)默認UTF-8字符集,簡易Web服務器(jwebserver)

(21)虛擬線程,記錄模式,匹配模式再增強,分代ZGC,有序集合,外部函數與內存API,?棄用Windows 32位安裝包,密鑰封裝機制API(KEM)

jvm

內存模型:本地方法棧,pc register,虛擬機棧,堆

作用:

堆:

類加載器的雙親委派機制:

加載流程:

gc

有哪些垃圾回收器:

gc算法:

arthas

內存泄漏定位過程以及使用的命令:

確認泄漏現象 → 定位TOP對象 → 追蹤引用鏈 → 監控增量 → 分析創建路徑 → 生成堆轉儲 → 修復代碼 → 驗證回收

# 查看JVM內存實時狀態(重點關注Old Gen)
dashboard -i 3000 -n 3 | grep -E 'Heap|Old Gen'

# 監控GC活動(頻繁Full GC是泄漏標志)
jvm | grep -A 5 'GC'

# 統計堆內存中對象數量TOP 10(立即執行)
memory --classloader -t 10

# 示例輸出(泄漏對象通常數量異常):
# com.example.CacheEntry ? 1,234,567 ?1.2GB
# java.util.HashMap$Node ? 890,123 ? ?450MB


# 獲取對象實例地址(以com.example.CacheEntry為例) vmtool --action getInstances --className com.example.CacheEntry --limit 1 # 輸出實例地址后,追蹤GC Roots引用路徑 ognl '@com.taobao.arthas.core.advisor.Advice@toGCRoots(<INSTANCE_ADDRESS>)'

# 每30秒統計一次泄漏對象的增量(持續觀察)
monitor -c 30 -n 5 'java.lang.Class getInstancesCount "com.example.CacheEntry"'

# 動態觀察對象創建堆棧(關鍵!)
stack com.example.CacheManager "addEntry" -n 10

# 生成輕量級堆轉儲(建議低峰期執行)
heapdump --live /tmp/leak_snapshot.hprof

# 僅dump可疑對象(減少文件大小)
heapdump --include com.example.CacheEntry /tmp/partial_dump.hprof

# 檢查對象是否被正確釋放(對比操作前后)
watch com.example.CacheService clearCache '{params,returnObj,throwExp}' -n 5 -x 3

# 追蹤對象finalize情況
trace java.lang.Object finalize -n 5
?

  1. ?臨時緩解?:通過Arthas強制清除泄漏集合(慎用!)

    ognl '@com.example.CacheManager@clearAll()'

  2. ?立即告警?:當Old Gen使用率超過90%時觸發告警

    jvm | grep 'Old Gen' | awk '{if($3>90) print "ALERT"}'

cpu過高:

dashboard -i 2000 -n 3

thread -n 5前五個cpu占用最高的完整堆棧 最忙的5個線程的堆棧(推薦)

thread -b看哪里阻塞死鎖堆棧

thread pid查看指定線程的完整堆棧

watch com.example.aa.類名 方法名 '{params,returnObj,throwExp}' -n 5 -x 3通過輸出最近5次方法的調用查看這個方法的參數返回和異常?

trace 類名 方法名 -n 5過輸出最近5次方法調用查看方法得耗時

stack 類名 方法名 -n 5通過輸出最近5次方法的調用棧 查看被哪里調用了

monitor -c 10 -n 5 'java.lang.Class getInstancesCount "com.example.*"'?每10秒統計一次類實例數(持續監控)

jad 類名 反編譯看下代碼是不是沒更新

# 1. 啟動采樣(默認30秒)
profiler start

# 2. 停止采樣生成SVG
profiler stop --format svg

# 3. 下載文件并用瀏覽器打開

其它場景:

線程

生命周期:

線程池:

java原生包:java.util.concurrent.Executor創建線程池:固定線程數的,單線程的,帶緩存的,周期性執行的,自定義的,jdk7開始有的ForkJoinPool

spring封裝:

org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor

org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor

每個參數的意思:

拒絕策略:

CallerRunsPolicy是不是立即調用:

匹配隊列:

ThreadLocal原理:

Volitale原理:

指令重排原理:

樂觀鎖:

悲觀鎖:

事務

acid:

事務隔離級別:

spring事務原理和流程:

分布式事務原理和流程:

mysql

函數:

索引:

事務:

鎖:

存儲結構:

同步機制:

優化:

redis

數據類型:

緩存擊穿:

緩存穿透:

緩存雪崩:

分布式鎖實現原理:

lua:

redis與mysql的同步機制與原理:

mongodb

存儲格式:

索引:

優化:

原理:

rocketmq / kafka

角色:

消息路由:

順序消費如何保證:

重試隊列機制:

死信隊列機制:

背壓機制:

sharding-jdbc

大數據分庫分表方案:

具體配置:

spring全家桶

如何理解spring:

如何理解springboot:

springboot如何優化啟動速度和內存占用量:

springcloud有哪些組件:

springcloudalibaba有哪些組件:

版本對應問題:

nacos:

openfeign:

setinel:

loadbalance:

seata:

es

歸檔方案:

復雜的查詢語句:

ik分詞器原理:

算法

設計模式

單例:

工廠:

策略:

發布訂閱:

責任鏈:

裝飾器:

適配器模式:

微服務架構設計原則

分布式系統設計模式

Flink

Spark

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920526.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920526.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920526.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式Linux驅動開發:設備樹與平臺設備驅動

嵌入式Linux驅動開發&#xff1a;設備樹與平臺設備驅動 引言 本筆記旨在詳細記錄嵌入式Linux驅動開發中設備樹&#xff08;Device Tree&#xff09;和平臺設備驅動&#xff08;Platform Driver&#xff09;的核心概念與實現。通過分析提供的代碼與設備樹文件&#xff0c;我們…

【完整源碼+數據集+部署教程】骨折檢測系統源碼和數據集:改進yolo11-EfficientHead

背景意義 骨折作為一種常見的骨骼損傷&#xff0c;其診斷和治療對患者的康復至關重要。傳統的骨折檢測方法主要依賴于醫生的經驗和影像學檢查&#xff0c;如X光、CT等&#xff0c;這不僅耗時&#xff0c;而且容易受到主觀因素的影響。隨著計算機視覺和深度學習技術的迅猛發展&a…

面試記錄7 c++軟件開發工程師

開目 一面&#xff1a; 自我介紹你做的xxx應用是用c做的嗎&#xff0c;是在window平臺嗎具體做的事情是什么你說的2D3D的結構是什么樣的&#xff0c;怎樣去做校驗有沒有二維到三維或者三維到二維的數據轉換兩個向量怎么去做校驗做的什么優化有調用第三方庫嗎是用的什么工具&…

計算機網絡:服務器處理多客戶端(并發服務器)

一、服務器處理多客戶端&#xff08;并發服務器&#xff09;&#xff08;一&#xff09;listen:監聽客戶端的連接請求&#xff0c;放入請求隊列&#xff08;二&#xff09;accpet&#xff1a;請求隊列中提取已連接的請求&#xff0c;返回連接好的fd&#xff08;循環accpet即可&…

Ansible自動化運維:原理以及安裝教程

目錄 Linux Ansible&#xff1a;作用與原理詳解 一、Ansible 的核心作用 1. 配置管理&#xff08;Configuration Management&#xff09; 2. 應用部署&#xff08;Application Deployment&#xff09; 3. 任務編排&#xff08;Orchestration&#xff09; 4. 其他擴展作用 二、A…

[機器學習]基于K-means聚類算法的鳶尾花數據及分類

基于Kmeans&#xff0c;對鳶尾花數據集前兩個特征進行聚類分析通過迭代優化&#xff0c;將150個樣本劃分到K個簇中。目標函數&#xff1a;最小化所有樣本到其所屬簇中心的距離平方和。算法步驟&#xff1a;隨機初始化K個簇中心。將每個樣本分配到最近的中心。計算均值確定每個簇…

Altium Designer 22使用筆記(10)---PCB鋪銅相關操作

目錄 01 | 簡 述 02 | 環境描述 03 | 鋪 銅 04 | 鋪銅挖空 05 | 敷銅合并 06 | 敷銅的修改 07 | 總 結 01 | 簡 述 在PCB設計階段&#xff0c;除了布局、布線操作需要頻繁進行調整外&#xff0c;鋪銅操作的使用也非常頻繁&#xff1b;因此本篇文章的主要內容為&#xff…

leetcode 338 比特位計數

一、題目描述二、解題思路我們可以借助位運算的思想來解決這個問題。通過kk&(k-1)來消除k中最右邊為1的比特位&#xff0c;每次消除后進行count&#xff0c;當k為0時&#xff0c;表示所有的1消除完畢&#xff0c;此時的count即為所有1的個數。三、代碼實現時間復雜度&#…

PHP的md5()函數分析

MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一種廣泛使用的哈希函數&#xff0c;由Ronald Rivest于1991年設計&#xff0c;屬于密碼散列算法家族。其核心功能是將任意長度的輸入數據&#xff08;如字符串、文件等&#xff09;通過不可逆的數學運算轉換為固定長度…

【面試場景題】怎么做業務領域劃分

文章目錄一、核心原則&#xff1a;以業務為中心&#xff0c;而非技術二、具體步驟&#xff1a;從業務理解到邊界定義1. 深入理解業務&#xff1a;梳理業務全景2. 識別核心領域與支撐領域3. 劃分“限界上下文”&#xff1a;定義領域邊界4. 定義領域內的“聚合”&#xff1a;細化…

海量小文件問題綜述和解決攻略(二)

1. 解決NameNode的內存問題 上面的內容提到過每個block的元數據都需要加載到NameNode的內存中&#xff0c;這導致一個Hadoop集群在NameNode中存儲的對象是有上限的&#xff0c;并且對象太多會帶來啟動時間較長以及網絡延遲的問題。常見的有兩種解決方案&#xff0c;減少集群的…

《開發避坑指南:從異常中讀懂系統的“求救信號”》

異常現象從不只是孤立的“故障”&#xff0c;而是系統發出的“健康預警”。太多團隊困在“出現問題-臨時修復-再次復發”的循環里&#xff0c;將精力消耗在表面問題的撲救上&#xff0c;卻忽視了背后潛藏的架構缺陷、邏輯漏洞與環境適配盲區。真正成熟的開發思維&#xff0c;是…

數字孿生技術為UI前端賦能:實現產品性能的實時監測與預警

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!過去十年&#xff0c;前端技術棧翻天覆地&#xff1a;React/Vue/Angular、Webpack/Vite、Serve…

【性能優化】Unity 渲染優化全解析:Draw Call、Batch、SetPass 與批處理技術

Unity 渲染優化全解析&#xff1a;Draw Call、Batch、SetPass 與批處理技術 在 Unity 開發中&#xff0c;性能優化是保證游戲流暢的核心環節。尤其在移動端或 VR/AR 場景&#xff0c;Draw Call 過多、材質切換頻繁都會嚴重影響幀率。 本文將從 Unity Statistics 面板參數解析…

基于Spring Boot的短信平臺平滑切換設計方案

基于Spring Boot的短信平臺平滑切換設計方案 案例背景 在電商系統中&#xff0c;短信服務是用戶注冊、登錄驗證、訂單通知等環節的關鍵基礎設施。由于業務需求或成本優化&#xff0c;企業可能需要在不同短信平臺&#xff08;如阿里云、騰訊云、云片等&#xff09;之間進行切換。…

信息技術發展

信息技術是研究如何獲取信息、處理信息、傳輸信息和使用信息的技術。計算機硬件控制器、運算器、存儲器、輸入設備、輸出設備。計算機軟件系統軟件、應用軟件、中間件。通信系統包括源系統、傳輸系統、目的系統。網絡基礎 個人局域網、局域網、城域網、廣域網、公用網、專用網。…

2023年12月GESP5級C++真題解析,包括選擇判斷和編程

一、選擇題&#xff08;每道題2分&#xff0c;共30分&#xff09; 1、下面C代碼用于求斐波那契數列&#xff0c;該數列第1 、2項為1&#xff0c;以后各項均是 前兩項之和。下面有關說法錯誤的是( ) A. fiboA( ) ?遞歸?式&#xff0c;fiboB() 循環?式 B. fiboA( ) 更加符合…

C++ 面試高頻考點 力扣 704.二分查找 基礎二分查找 題解 每日一題

文章目錄二分查找&#xff1a;從基礎原理到代碼實現二分查找的特點算法重點題目描述&#xff1a;LeetCode 704. 二分查找為什么可以用二分查找&#xff1f;暴力算法解法二分查找解法核心邏輯&#xff1a;三種情況的處理二分查找什么時候結束&#xff1f;為什么二分查找一定是對…

《UE5_C++多人TPS完整教程》學習筆記45 ——《P46 待機與跳躍動畫(Idle And Jumps)》

本文為B站系列教學視頻 《UE5_C多人TPS完整教程》 —— 《P46 待機與跳躍動畫&#xff08;Idle And Jumps&#xff09;》 的學習筆記&#xff0c;該系列教學視頻為計算機工程師、程序員、游戲開發者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09…

2025年03月 Scratch 圖形化(一級)真題解析#中國電子學會#全國青少年軟件編程等級考試

Scratch圖形化等級考試(1~4級)全部真題?點這里 一、單選題(共25題,共50分) 第1題 氣球初始位置如下圖所示,運行下列程序,氣球會朝哪個方向移動?( ) A:水平向右 B:垂直向下 C:水平向左 D:垂直向上 答案:A 氣球水平向右移動 第2題 使用下列哪個選項可以將…