詳解java體系實用知識總結

0.java技術能力框架

基礎模塊應用模塊綜合模塊
技術崗位與面試流程常用工具集系統架構設計
計算機基礎常用框架微服務架構
jvm原理緩存容器化
多線程隊列云計算(阿里云/aws)
設計模式數據庫
數據結構與算法

1.常用設計模式與應用場景

  • 工廠模式:spring 創建bean
  • 代理模式:spring AOP
  • 責任鏈模式:netty消息處理方式或.審批流程采用責任鏈模式
  • 適配器模式:SLF4j對log4j的支持
  • 觀察者模式:webflux對流式請求的支持
  • 構造者模式:PB序列化中的Builder
  • 策略模式實現各種業務的指標監控邏輯或利用反射結合策略模式實現虛擬商品購買下發放不同權益;

2. JVM

  • 性能分析工具(MAT/JMC/JStack/Jstat/arthas )
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

3.并發與多線程

在這里插入圖片描述
線程狀態的轉換:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.spring&web

1.spring

spring context初始化流程
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
spring如何解決bean的循環依賴調用:
Spring通過三級緩存解決了循環依賴,其中一級緩存為單例池(singletonObjects),二級緩存為早期曝光對象earlySingletonObjects,三級緩存為早期曝光對象工廠(singletonFactories)。當A、B兩個類發生循環引用時,在A完成實例化后,就使用實例化后的對象去創建一個對象工廠,并添加到三級緩存中,如果A被AOP代理,那么通過這個工廠獲取到的就是A代理后的對象,如果A沒有被AOP代理,那么這個工廠獲取到的就是A實例化的對象。當A進行屬性注入時,會去創建B,同時B又依賴了A,所以創建B的同時又會去調用getBean(a)來獲取需要的依賴,此時的getBean(a)會從緩存中獲取,第一步,先獲取到三級緩存中的工廠;第二步,調用對象工工廠的getObject方法來獲取到對應的對象,得到這個對象后將其注入到B中。緊接著B會走完它的生命周期流程,包括初始化、后置處理器等。當B創建完后,會將B再注入到A中,此時A再完成它的整個生命周期。至此,循環依賴結束!

2.RPC框架實現

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.mybatis

在這里插入圖片描述
在這里插入圖片描述

4.緩存

在這里插入圖片描述
Memcache:
在這里插入圖片描述
Redis:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

5.Mysql調優在這里插入圖片描述

mysql索引:
在這里插入圖片描述
Mysql調優:
在這里插入圖片描述
在這里插入圖片描述

5.軟件開發

1.軟件工程的階段

在這里插入圖片描述

2.測試分類

在這里插入圖片描述

3. http請求返回狀態碼

在這里插入圖片描述

4.軟件設計原則:

solid原則:

  • 開閉原則:對擴展開放,對修改關閉,多使用抽象類和接口。
  • 里氏替換原則:基類可以被子類替換,使用抽象類繼承,不使用具體類繼承。
  • 依賴倒轉原則:要依賴于抽象,不要依賴于具體,針對接口編程,不針對實現編程。
  • 接口隔離原則:使用多個隔離的接口,比使用單個接口好,建立最小的接口。接口職責明確
  • 迪米特法則:一個軟件實體應當盡可能少地與其他實體發生相互作用,通過中間類建立聯系。
  • 合成復用原則:盡量使用合成/聚合,而不是使用繼承。

5.TOGAF架構領域(BDAT):

  • Business(Strategy/Governance/key processes)
  • Data(Logical and physical data assets/Data management)
  • Application(Interactions and relationships to core business processes/ how they support the strategy)
  • Technology(software and hareware capabilities/Infrastructure、middleware、networks 、communications、processing、and standards)

6.常用開發工具

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

MAT 查看dump信息,jmap導出dump文件

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

7.常用數據結構與算法

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
主導世界的10種算法
在這里插入圖片描述

8.開源項目學習

1.ftgo源碼學習在這里插入圖片描述

常用依賴庫匯總:

io.micrometer:micrometer-registry-prometheusorg.springframework.boot:spring-boot-starter-actuatorio.eventuate.tram.core:eventuate-tram-spring-jdbc-kafka
io.eventuate.tram.core:eventuate-tram-spring-events
io.eventuate.tram.core:eventuate-tram-spring-messaging
io.eventuate.common:eventuate-common-json-mapper
io.eventuate.tram.sagas:eventuate-tram-sagas-spring-orchestration-simple-dsl
io.eventuate.tram.core:eventuate-tram-aggregate-domain-events
io.eventuate.tram.core:eventuate-tram-spring-consumer-kafka
io.eventuate.tram.core:eventuate-tram-spring-commands
eventuate-tram-sagas-spring-participant
io.eventuate.tram.sagas:eventuate-tram-sagas-spring-orchestrationorg.apache.commons.lang3.builder.HashCodeBuilderlibphonenumber :手機號碼庫edu.princeton.cup:java-cup-10k:解決c10k庫 spring-boot-admin-starter-client
pagehelper-spring-boot-starter:分頁
mybatis-generator-core:mybatis 生成器
sa-token-reactor-spring-boot3-starter:集成sa-token到響應式springboot
sa-token-redis-jackson:Sa-Token 集成redis并使用jackson序列化 
sa-token-jwt:sa-token集成jwt

涉及的技術點:

  1. 分布式事務saga實現采用io.eventuate.tram庫
  2. kafka-gui:kafka ui界面工具
  3. @EnableAdminServer 開啟adminserver

2. PassJava-Platform源碼學習

常用依賴庫匯總

mybatis-plus-boot-starterspring-cloud-starter-alicloud-ossspring-cloud-starter-alibaba-nacos-discoveryspring-cloud-starter-alibaba-nacos-configspring-cloud-starter-openfeignmybatis-plus-core
mybatis-plus-extensiontransmittable-thread-local  :阿里開源的,提供threadlocal值傳遞功能,解決異步執行時上下文傳遞問題。適合jdk6~21io.jsonwebtoken : jjwtspring-security-crypto:加解密spring-retrycom.github.penggle:kaptcha :圖片驗證碼生成工具springfox-swagger2
springfox-swagger-ui  hutool-allelasticsearch-rest-high-level-client :es客戶端庫org.redisson:redisson :分布式鎖、分布式對象等功能框架

涉及的技術點

  1. jwt/springsecurity->token->JwtAuthController
  2. 解決:時間格式問題–> @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT+8”)
  3. redisson實現分布式鎖方案代碼如下:
 public List<TypeEntity> getTypeEntityListByRedissonDistributedLock() {// 1.設置分布式鎖RLock lock = redisson.getLock("lock");// 2.占用鎖lock.lock();System.out.println("加鎖成功,執行后續代碼。線程 ID:" + Thread.currentThread().getId());List<TypeEntity> typeEntityListFromDb = null;try {// 3.獲取數據typeEntityListFromDb = getDataFromDB();Thread.sleep(10000); // 模擬長時間執行任務} catch (Exception e) {System.out.println("異常");// TODO} finally {// 4.釋放鎖System.out.println("釋放成功,執行后續代碼。線程 ID:" + Thread.currentThread().getId());lock.unlock();}return typeEntityListFromDb;}

9. 工程師求職流程

工程師發展路徑

  • 技術序列:技術攻堅、架構設計、專業知識
  • 管理序列:團隊管理、項目管理、溝通協作

1.編寫簡歷

工作內容、專業技能和項目經驗寫的有問題。簡歷內容廢話太多;高級工程師,考慮綜合能力;采用star原則寫簡歷,盡量數據量化成果。
在這里插入圖片描述
在這里插入圖片描述

2.面試流程

在這里插入圖片描述

3.面試前準備工作

  1. 了解應試公司以及崗位信息
  2. 系統化復習基礎知識
  3. 對原公司負責的項目進行梳理總結
  4. 學習典型架構案例
  5. 閱讀常考考點源碼
  6. 針對性準備加分項

面試是:溝通、心態、能力的綜合體現;自信、良好順暢的溝通特別重要

4.面試考察點

在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

5.加分項

  1. 知識點與典型的業務場景關聯
  2. 以反例描述實際場景中誤用的危害
  3. 與知識點相關的優化點
  4. 與知識點相關的最新技術趨勢
  5. 在了解的前提下,盡量增加回答內容的深度

6.硬技能

在這里插入圖片描述

7.面試技巧

在這里插入圖片描述
star :stituation,task,action,result.
在這里插入圖片描述

面試結束要做的事:

  • 準備1~2個小問題
  • 不要詢問面試結果
  • 復盤與總結

參考資料

  • 分布式事務saga: https://blog.csdn.net/2301_77835649/article/details/131529270
  • saga實現框架:eventuate-tram https://github.com/eventuate-tram/eventuate-tram-core
  • 分布式事務seata
  • TransmittableThreadLocal : https://github.com/alibaba/transmittable-thread-local
  • arthas https://github.com/alibaba/arthas/blob/master/README_CN.md
    https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn
    https://arthas.aliyun.com/doc/spring-boot-starter.html
  • Sa-Token:java權限認證框架 https://github.com/dromara/Sa-Token https://sa-token.cc/
  • JeecgBoot 低代碼開發平臺: https://github.com/jeecgboot/JeecgBoot
  • mall https://github.com/macrozheng/mall https://github.com/macrozheng/mall-swarm
  • springboot+k8s https://gitee.com/geektime-geekbang/staffjoy git clone https://gitee.com/geektime-geekbang/staffjoy.git
  • ftgo: https://github.com/microservices-patterns/ftgo-application.git
  • 程序員進擊之路 https://www.didispace.com/home.html
  • mybatis一鍵生成DAO: https://mybatis.org/generator/
  • mybatis通用mapper4 一鍵生成: https://github.com/abel533/Mapper
  • 參考資料:https://github.com/WongSilver/spring-cloud-study

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

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

相關文章

設計模式之創建型5種

設計模式 為什么設計模式是23種創建型 對象創建為什么設計模式是23種 設計模式之所以被歸納為23種,而非其他數量,源于GoF(Gang of Four)在1994年的系統性總結和分類。這一數量的確定并非偶然,而是基于以下核心原因: 他們遵循“大三律”(Rule of Three),即只有經過三個…

Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)

文章目錄 Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)ONNX基本概念ONNX(Open Neural Network Exchange)ONNX Runtime ONNX Runtime 在Oracle數據庫中的集成參考 Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange) 我們在看【…

統一語言學習范式

摘要 現有的預訓練模型通常針對特定類別的問題。迄今為止&#xff0c;關于何種架構和預訓練設置應為最佳似乎仍未達成共識。本文提出了一個統一的框架&#xff0c;用于預訓練在多種數據集和設置中普遍有效的模型。我們首先將架構原型與預訓練目標這兩個常被混為一談的概念進行…

Flutter項目升級到指定版本的詳細步驟指南

一、升級前的準備工作 備份項目 使用Git提交當前所有修改&#xff1a;git commit -am "Pre-upgrade backup"或直接復制項目文件夾 查看當前環境信息 flutter --version flutter doctor二、升級Flutter SDK到指定版本 方法1&#xff1a;通過版本管理工具升級&#x…

22、web前端開發之html5(三)

六. 離線存儲與緩存 在網絡環境不穩定或需要優化資源加載速度的場景下&#xff0c;離線存儲與緩存技術顯得尤為重要。HTML5引入了多種離線存儲和緩存機制&#xff0c;幫助開發者提升用戶體驗。本節將詳細介紹Application Cache、localStorage、sessionStorage以及IndexedDB等技…

用HTML和CSS生成炫光動畫卡片

這個效果結合了漸變、旋轉和懸浮效果的炫酷動畫示例&#xff0c;使用HTML和CSS實現。 一、效果 二、實現 代碼如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…

【嵌入式學習2】數組

目錄 ## 數組概念 ## 數組使用 ## 數組初始化 ## 數組名 ## 數組長度 ## 數組相關題目 1、找最大值 2、逆置 ## 數組和指針 指針加整數的含義 ## 指針數組 ## 數組名做函數參數 ## 函數參數傳遞數組 1、在函數內部 2. 在函數外部 ## 多維數組 使用下標訪問 #…

C++中的判斷與循環

一.if判斷語句 1.程序中的判斷&#xff1a; if (要執行的判斷&#xff0c;最后的返回值要是bool型的數據) {如果為真&#xff0c;要執行的代碼段; } #include"iostream" using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout <…

前端開發中生成網站的favicon.ico文件的軟件推薦及使用方法

日常網站開發中&#xff0c;我們經常需要生成網站的favicon.ico文件&#xff0c;今天我在這里來推薦幾個編輯.ico(也可將圖片格式轉化為.ico)圖片&#xff0c;而且免費的那軟件&#xff1a; GIMP&#xff1a;一個功能強大的開源圖像編輯軟件&#xff0c;支持多種文件格式&#…

淺談WebSocket-FLV

FLV是一種視頻數據封裝格式&#xff0c;這種封裝被標準通信協議HTTP-FLV和RTMP協議應用。 而WebSocket-FLV是一種非標的FLV封裝數據從后端發送到前端的一種方式。 在WebSocket的url請求中&#xff0c;包含了需要請求設備的視頻相關信息&#xff0c;在視頻數據到達時&#xff0c…

基于ADMM無窮范數檢測算法的MIMO通信系統信號檢測MATLAB仿真,對比ML,MMSE,ZF以及LAMA

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 ADMM算法 4.2 最大似然ML檢測算法 4.3 最小均方誤差&#xff08;MMSE&#xff09;檢測算法 4.4 迫零&#xff08;ZF&#xff09;檢測算法 4.5 OCD_MMSE 檢測算法 4.6 LAMA檢測算法 …

cocos creator 筆記-路邊花草

版本&#xff1a;3.8.5 實現目標&#xff1a;給3d道路生成路邊景觀花草 在場景下創建一個節點&#xff0c;我這里種植兩種花草模型&#xff0c;蘭花和菊花&#xff0c;所以分別在節點下另創建兩個節點&#xff0c;為了靜態合批。 1.將花草模型分別拖入場景中&#xff0c;制作…

R語言——循環

參考資料&#xff1a;學習R 在R中有三種循環&#xff1a;repeat、while和for。雖然向量化意味著我們可能并不需要大量使用它們&#xff0c;但在需要重復執行代碼時&#xff0c;它們是非常有用的。 1、重復循環 R中最容易掌握的循環是repeat。它所做的事情就是反復地執行代碼&a…

springboot使用阿里限流框架-sentinel

當前項目源碼 控制臺下載 啟動bin中的看板服務&#xff1a;賬號密碼:sentinel/sentinel 官方文檔地址 項目引入依賴 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…

CSS3學習教程,從入門到精通,CSS3 元素的浮動與定位語法知識點及案例代碼(17)

CSS3 元素的浮動與定位語法知識點及案例代碼 一、CSS3 浮動&#xff08;float&#xff09; 知識點 1. **定義** &#xff1a;浮動使元素向左或向右移動&#xff0c;直到它的外邊緣碰到包含框或另一個浮動元素的邊框為止。浮動主要用于布局&#xff0c;如實現圖文繞排等效果。…

數據結構:漢諾塔問題的遞歸求解和分析

遞歸方法求解該類問題&#xff0c;是一種簡單的思維方法&#xff0c;通常比使用迭代方法更簡單。但是&#xff0c;遞歸方法也有劣勢。此處以典型的漢諾塔問題&#xff08;Tower of Hanoi&#xff09;為例給予說明。 漢諾塔是根據一個傳說形成的數學問題&#xff0c;最早是由法國…

3.27學習總結 算法題

自己用c語言做的&#xff0c;不盡如意 后面看了題解&#xff0c;用的是c&#xff0c;其中string 變量和字符串拼接感覺比c方便好多&#xff0c;可以用更少的代碼實現更好的效果&#xff0c;打算之后去學習c&#xff0c;用c寫算法。 遞歸&#xff0c;不斷輸入字符&#xff0c;…

vue 圖片放大到全局

背景&#xff1a; 在vue項目中&#xff0c;el-image組件圖片組件用于展示圖片&#xff0c;組件自帶的屬性preview-teleported&#xff0c;設置為true可以控制圖片放大到全局 實現效果&#xff1a; 核心代碼&#xff1a; //圖片地址&#xff1a;BASEUrl /file/ item.file //這…

【商城實戰(75)】數據分析指標體系搭建:從0到1的技術指南

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

seatunnel配置mysql2hive

SeaTunnel安裝教程 # 執行流程 # 下載&#xff0c;解壓 # https://mirrors.aliyun.com/apache/seatunnel/2.3.8/?spma2c6h.25603864.0.0.2e2d3f665eBj1E # https://blog.csdn.net/taogumo/article/details/143608532 tar -zxvf apache-seatunnel-2.3.8-bin.tar.gz -C /opt/mo…