企業打款驗證API在Java、Python、PHP中的使用教程

隨著企業銀行賬號數量的增加和銀行間的連接方式不斷豐富,企業在進行資金交易時需要確保所填寫的收款方賬戶信息的準確性和合法性,以避免資金損失和風險。然而,由于銀行數量眾多、地域分布廣泛,不同銀行間的賬戶驗證機制和信息交互方式各不相同,給企業的資金管理帶來了一定的挑戰。

為了解決這一問題,企業打款驗證應運而生。該驗證機制支持多達741家銀行,通過企業提供的收款方賬戶、收款方公司名稱以及收款方聯行號等關鍵信息,平臺能夠向指定賬戶打一筆隨機金額的資金。收款方在收到資金后,通過財務查詢并核對收到的金額,然后在平臺輸入該金額進行一致性驗證。這樣一來,企業便能夠驗證銀行賬戶的真實性和歸屬性,確保資金的安全和正確到達目標賬戶,有效降低了資金交易中的風險和錯誤率,提升了資金管理的效率和可靠性。

什么是企業打款驗證 API

企業打款驗證API是一種用于驗證企業銀行打款信息的接口。它通常用于企業在業務流程中需要確認或驗證其他合作伙伴的銀行賬戶信息是否準確、有效以及是否有權進行打款。

企業打款驗證 API適用于哪些人

企業打款驗證API適用于以下類型的人或實體:

  1. 企業:企業可以利用企業打款驗證 API 來驗證其與供應商、合作伙伴或客戶之間的銀行賬戶信息的準確性和一致性。這對于確保資金安全和準確到賬非常重要。
  2. 金融科技公司:金融科技公司可以提供企業打款驗證 API 作為其金融服務的一部分,幫助企業客戶確保他們的資金交易安全可靠。
  3. 財務服務提供商:財務服務提供商可以使用企業打款驗證 API 作為其企業客戶賬戶驗證和風險管理的一部分,以提供更全面的服務。
  4. 支付平臺和支付處理商:支付平臺和支付處理商可以利用企業打款驗證 API 來確保其平臺上的收款方賬戶信息的準確性,以降低支付過程中的風險。
  5. 開發者和軟件公司:開發者和軟件公司可以集成企業打款驗證 API 到他們的軟件產品或應用程序中,以為企業客戶提供更完整的支付解決方案。

總的來說,企業打款驗證 API 對于任何需要驗證銀行賬戶信息的個人、企業或實體都是有用的,特別是在涉及資金交易和支付的場景中。

企業打款驗證 API是如何工作的

企業打款驗證API的工作原理通常包括以下步驟:

  1. 提供賬戶信息:企業提供收款方賬戶的具體信息,包括賬戶號碼、收款方公司名稱、收款方聯行號等關鍵信息。
  2. 發起打款請求:驗證平臺接收到企業提供的賬戶信息后,發起一筆隨機金額的打款請求到指定的收款方賬戶。
  3. 接收驗證請求:收款方接收到打款后,系統通知或者提醒收款方需要進行驗證。
  4. 核對金額:收款方財務查詢并核對收到的隨機金額,確保金額與實際收到的資金一致。
  5. 輸入驗證:收款方在驗證平臺上輸入收到的隨機金額,以完成驗證流程。
  6. 驗證結果返回:驗證平臺接收到驗證結果后,將結果返回給企業或者驗證發起者,通知驗證是否成功。

企業打款驗證 API 的關鍵在于通過打款和驗證金額的方式,驗證收款方賬戶的真實性和一致性。這種方式可以有效地降低錯誤和欺詐行為,確保資金安全到賬。同時,該流程也提高了交易的透明度和可追溯性,為企業和交易雙方提供了更高的信任度。

如何使用企業打款驗證 API?

1. 注冊: 開發者可以在冪簡集成平臺上注冊賬戶,選擇適合自己的工作空間,并在空間中創建自己的應用。

2. API 發現: 通過API Hub找到所需的API服務,通過一鍵集成將API集成到所創建的應用中。

3. API 集成: 開發者按照文檔中的指引,將 API 集成到自己的應用程序中。

4. API 管理: 在冪簡集成平臺上,可以管理 API 密鑰、查看使用情況和監控身份驗證請求。

企業打款驗證API在不同開發語言中的調用(Java/python/php 示例)

在Java中,下面這段代碼展示了如何使用 Java 發送 HTTP POST 請求到企業打款驗證服務,以及如何處理服務的響應。需要注意的是,其中的 `HttpUtils` 類和依賴項需要從提供的鏈接下載并引入。此外,`{{AppCode}}` 部分需要替換為實際的應用程序代碼。

打款接口

import com.mittang.util.HttpUtils;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import java.util.HashMap;
import java.util.Map;public class Example {public static void main(String[] args) throws Exception{String host = "https://open.explinks.com";String path = "/v1/tools/verify/company/pay-verify";String method = "POST";// "{{AppCode}}" 替換成您的 AppCodeString appcode = "{{AppCode}}";Map headers = new HashMap<>();headers.put("X-Mce-Signature", "AppCode/" + appcode);headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");Map querys = new HashMap<>();Map bodys = new HashMap<>();// 填充參數bodys.put("reqNo", "123123");bodys.put("bankCard", "bankCard");bodys.put("companyName", "companyName");bodys.put("bankName", "bankName");bodys.put("bankUnionCode", "bankUnionCode");try {/*** 重要提示如下:* HttpUtils請從* https://static.miitang.com/saas/simple/HttpUtils.java 下載** 相應的依賴請參照* https://static.miitang.com/saas/simple/pom.xml*/HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);// 獲取 response 的 bodyString resStr = EntityUtils.toString(response.getEntity());System.out.println(resStr);int statusCode = response.getStatusLine().getStatusCode();if(statusCode == 200){// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理} else if(statusCode == 610){// 用戶輸入的參數問題,可直接提示用戶} else if(statusCode == 611){// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶} else if(statusCode == 612){// 用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理} else if(statusCode >= 500 && statusCode < 600){// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服} else {// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。}} catch (Exception e) {e.printStackTrace();}}
}

驗證接口

import com.mittang.util.HttpUtils;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import java.util.HashMap;
import java.util.Map;public class Example {public static void main(String[] args) throws Exception{String host = "https://open.explinks.com";String path = "/v1/tools/verify/company/pay-verify-check";String method = "POST";// "{{AppCode}}" 替換成您的 AppCodeString appcode = "{{AppCode}}";Map headers = new HashMap<>();headers.put("X-Mce-Signature", "AppCode/" + appcode);headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");Map querys = new HashMap<>();Map bodys = new HashMap<>();// 填充參數bodys.put("reqNo", "123123");bodys.put("bankCard", "bankCard");bodys.put("amount", "0.1");try {/*** 重要提示如下:* HttpUtils請從* https://static.miitang.com/saas/simple/HttpUtils.java 下載** 相應的依賴請參照* https://static.miitang.com/saas/simple/pom.xml*/HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);// 獲取 response 的 bodyString resStr = EntityUtils.toString(response.getEntity());System.out.println(resStr);int statusCode = response.getStatusLine().getStatusCode();if(statusCode == 200){// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理} else if(statusCode == 610){// 用戶輸入的參數問題,可直接提示用戶} else if(statusCode == 611){// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶} else if(statusCode == 612){// 用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理} else if(statusCode >= 500 && statusCode < 600){// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服} else {// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。}} catch (Exception e) {e.printStackTrace();}}
}

在Python中,使用 `requests` 庫發送 POST 請求到企業打款驗證服務接口,根據響應狀態碼進行業務邏輯處理,包括成功、參數問題、數據問題、操作頻度問題和系統穩定性問題等的處理。

打款接口

import json
import requestsif __name__ == '__main__':url = "https://open.explinks.com/v1/tools/verify/company/pay-verify"payload = json.dumps({"reqNo": "132123","bankCard": "bankCard","companyName": "companyName","bankName": "bankName","bankUnionCode": "bankUnionCode"})headers = {"Content-Type": "application/json",# "{{AppCode}}" 替換為您的 AppCode"X-Mce-Signature": "AppCode/{{AppCode}}"}response = requests.request("POST", url, headers=headers, data=payload)status_code = response.status_codeprint("headers:", response.headers)print("http 狀態碼:", str(status_code))print(response.text)if status_code == 200:"請求成功,可根據業務碼(請求體中的code)進行邏輯處理"elif status_code == 610 :"用戶輸入的參數問題,可直接提示用戶"elif status_code == 611 :"系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶"elif status_code == 612 :"用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理"elif status_code >= 500 & status_code < 600 :"在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服"else:"如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。"

驗證接口

import json
import requestsif __name__ == '__main__':url = "https://open.explinks.com/v1/tools/verify/company/pay-verify-check"payload = json.dumps({"reqNo": "132123","bankCard": "bankCard","amount": "0.1"})headers = {"Content-Type": "application/json",# "{{AppCode}}" 替換為您的 AppCode"X-Mce-Signature": "AppCode/{{AppCode}}"}response = requests.request("POST", url, headers=headers, data=payload)status_code = response.status_codeprint("headers:", response.headers)print("http 狀態碼:", str(status_code))print(response.text)if status_code == 200:"請求成功,可根據業務碼(請求體中的code)進行邏輯處理"elif status_code == 610 :"用戶輸入的參數問題,可直接提示用戶"elif status_code == 611 :"系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶"elif status_code == 612 :"用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理"elif status_code >= 500 & status_code < 600 :"在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服"else:"如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。"

在PHP中,使用 cURL 發送 POST 請求到企業打款驗證服務接口,處理并輸出相應的業務邏輯。它包括設置請求頭、發送請求、處理響應,根據響應狀態碼進行不同的業務邏輯處理,如成功、參數問題、數據問題、操作頻度問題、系統穩定性問題等。

打款接口

<?php$host = "https://open.explinks.com";$path = "/v1/tools/verify/company/pay-verify";$method = "POST";$appcode = "{{您的AppCode}}";$headers = array();array_push($headers, "x-mce-signature:AppCode/" . $appcode);//根據API的要求,定義相對應的Content-Typearray_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");$querys = "";$bodys = "reqNo=123123&bankCard=bankCard&companyName=companyName&bankName=bankName&bankUnionCode=bankUnionCode";$url = $host . $path;$curl = curl_init();curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);curl_setopt($curl, CURLOPT_FAILONERROR, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_HEADER, true);if (1 == strpos("$".$host, "https://")){curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);}curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);$result = curl_exec($curl);$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); // 獲得響應頭大小$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);$body = substr($result,$header_size);curl_close($curl);$retMap = json_decode($body, true);$code = $retMap["code"];echo $httpCode.PHP_EOL; // DEBUGif($httpCode == 200){// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理echo $retMap["code"].PHP_EOL;echo $retMap["message"].PHP_EOL;echo $retMap["hasFees"].PHP_EOL;echo $retMap["fees"].PHP_EOL;if($code == "FP00000"){// SUCCESSecho "SUCCESS";}else{// FAILUREecho "FAILURE";}} else {echo $code.PHP_EOL; // DEBUGif($httpCode == 610){// 用戶輸入的參數問題,可直接提示用戶$errors = $retMap["errors"];$errorMap = null;foreach($errors as $key=>$value){foreach($value as $key2=>$value2){$errorMap[$key] = $value2;break;}}// 轉化為 key:tipecho($errorMap["idCardNo"].PHP_EOL);echo($errorMap["name"].PHP_EOL);} else if($httpCode == 611){// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶echo "修訂數據狀態,不要重復操作。".PHP_EOL;} else if($httpCode == 612){            // 用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理echo $retMap["message"].PHP_EOL;} else if($httpCode >= 500 && $httpCode < 600){// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服// TODO: retryecho "RETRY".PHP_EOL;} else {// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。var_dump($retMap);}}
?>

驗證

<?php$host = "https://open.explinks.com";$path = "/v1/tools/verify/company/pay-verify-check";$method = "POST";$appcode = "{{您的AppCode}}";$headers = array();array_push($headers, "x-mce-signature:AppCode/" . $appcode);//根據API的要求,定義相對應的Content-Typearray_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");$querys = "";$bodys = "reqNo=123123&bankCard=bankCard&amount=0.01";$url = $host . $path;$curl = curl_init();curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);curl_setopt($curl, CURLOPT_FAILONERROR, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_HEADER, true);if (1 == strpos("$".$host, "https://")){curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);}curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);$result = curl_exec($curl);$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); // 獲得響應頭大小$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);$body = substr($result,$header_size);curl_close($curl);$retMap = json_decode($body, true);$code = $retMap["code"];echo $httpCode.PHP_EOL; // DEBUGif($httpCode == 200){// 請求成功,可根據業務碼(請求體中的code)進行邏輯處理echo $retMap["code"].PHP_EOL;echo $retMap["message"].PHP_EOL;echo $retMap["hasFees"].PHP_EOL;echo $retMap["fees"].PHP_EOL;if($code == "FP00000"){// SUCCESSecho "SUCCESS";}else{// FAILUREecho "FAILURE";}} else {echo $code.PHP_EOL; // DEBUGif($httpCode == 610){// 用戶輸入的參數問題,可直接提示用戶$errors = $retMap["errors"];$errorMap = null;foreach($errors as $key=>$value){foreach($value as $key2=>$value2){$errorMap[$key] = $value2;break;}}// 轉化為 key:tipecho($errorMap["idCardNo"].PHP_EOL);echo($errorMap["name"].PHP_EOL);} else if($httpCode == 611){// 系統準備的數據問題,如 文件數據下載失敗、數據不存在、數據重復請求等。  LOG it and 提示用戶echo "修訂數據狀態,不要重復操作。".PHP_EOL;} else if($httpCode == 612){            // 用戶操作頻度問題,可提示用戶。  LOG it and 按業務特點做處理echo $retMap["message"].PHP_EOL;} else if($httpCode >= 500 && $httpCode < 600){// 在運行階段發生的系統穩定性問題,客戶端可以重試,或者聯系我司客服// TODO: retryecho "RETRY".PHP_EOL;} else {// 如賬戶密碼錯誤、IP白名單問題、余額不足等,您應該在對接過程中解決相關問題。var_dump($retMap);}}
?>

總結

企業打款驗證API是現代金融科技中的重要工具,類似于人臉對比技術在身份驗證中的作用。它通過驗證賬戶信息和隨機金額的打款,提供了一種高效、準確、安全的賬戶驗證手段,有助于降低支付過程中的風險和錯誤率,推動了企業金融管理和支付系統的技術創新和應用發展。

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

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

相關文章

vue前端實現頁面禁止縮放 前端適配問題處理 前端項目多端適配解決方案

在前端項目中,如果一個系統頁面可以縮放可能會導致多種異常情況,這些異常情況涉及到頁面布局、元素尺寸、事件觸發、響應式設計和用戶體驗等方面。 1.布局錯亂:頁面元素在縮放后可能會出現錯位、重疊或部分隱藏的情況,導致頁面布局混亂,影響用戶對頁面內容的理解和操作。這…

【云原生】kubernetes中secret原理詳解與應用實戰

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

讀AI未來進行式筆記02深度偽造

1. 計算機視覺 1.1. 在人的六感之中&#xff0c;視覺是最重要的 1.1.1. 人類只要看上一眼視頻&#xff0c;就能瞬間在腦海中抓取并消化內容和信息 1.1.2. 人類能夠對事物進行廣義的理解和抽象的認知&#xff0c;即使同一物體在不同的角度…

聲量2024 | 內容創作者,該怎樣保護你的知識產權

點擊文末“閱讀原文”即可參與節目互動 剪輯、音頻 / 卷圈 運營 / SandLiu 卷圈 監制 / 姝琦 封面 / 姝琦Midjourney 產品統籌 / bobo 場地支持 / 阿那亞 聯合制作 / 聲量The Power of Voice 特別鳴謝 / 深夜談談播客網絡 本期節目錄制于第二屆「聲量The Power of Voic…

opencascade 布爾運算筆記

BRepAlgoAPI_Common 對兩個topods求解 沒有公共部分也返回結果了 我想要的結果是沒有公共部分返回false 在 Open CASCADE 中使用 BRepAlgoAPI_Common 進行布爾操作時&#xff0c;即使兩個 TopoDS_Shape 沒有公共部分&#xff0c;操作仍會返回一個結果。為了判斷兩個形狀是否確…

vue3封裝echarts組件---通俗易懂

1、封裝的原因 如果在vue項目中有多個組件或者同個組件多出地方需要不同的圖表&#xff0c;因此自己封裝一個方便多次復用的Mycharts圖表組件。 2、具體步驟&#xff1a; 2.1 安裝echarts pnpm i echarts --save 2.2 新建MyCharts組件 : ~components/echarts/MyCharts.vu…

x264 參考幀管理原理:i_poc 變量

POC H.264中的POC(Picture Order Count)用于表示解碼幀的顯示順序。當視頻碼流中存在B幀時,解碼順序和顯示順序可能不一致,因此需要根據POC來重新排列視頻幀的顯示順序,以避免跳幀或畫面不連貫的問題。 具體來說,POC的作用包括: 重排顯示順序:POC確保即使在存在B幀的情…

基于javacv ffmpeg 使用原生ffmpeg命令

基于javacv ffmpeg 使用原生ffmpeg命令 1. ffmpeg2. ffprobe 相關閱讀&#xff1a; javacv ffmpeg使用筆記 測試過程中&#xff0c;發現ffmpeg-6.0-1.5.9-linux-x86_64.jar 存在問題&#xff08;ffmpeg原生命令執行失敗&#xff09;&#xff0c;降級到ffmpeg-5.1.2-1.5.8-linux…

RPG Maker MV 踩坑十一 精靈及背景繪制問題

精靈繪制問題 RPG Maker MV戰斗問題入場飛身戰斗背景繪制精靈集及精靈 RPG Maker MV戰斗問題 在RMMV中戰斗是在場景中調用戰斗管理器&#xff0c;通過管理器去操作角色對象行動及精靈的繪制的。 入場飛身 在其中就發現一個問題加載圖片進場時&#xff0c;會偏高&#xff0c;…

Python編程學習第一篇——Python零基礎快速入門(五)—元組(Tuple)操作

Python元組是一種不可變的有序集合&#xff0c;可以存儲多個不同類型的數據。元組使用小括號來表示&#xff0c;其中的元素用逗號分隔開。與列表不同&#xff0c;元組的元素不能被修改、刪除或添加。它的一些常規操作包括元組的創建、訪問、添加、修改、刪除、運算等等&#xf…

電力電子功率模塊在工程應用中測溫NTC的使用

電力電子功率模塊在工程應用中測溫NTC的使用 1.概述2.什么是NTC3.模塊內部NTC3.1 絕緣隔離措施3.2 NTC熱量考慮 4.使用模擬方法測量NTC溫度4.1 分壓電阻大小 5.使用數字方法測量NTC溫度 1.概述 最近做項目的時候突然被問到一個問題。做實驗測溫用的NTC到底怎么用&#xff1f;為…

【Python】超時請求或計算的處理

超時機制 一般應用于處理阻塞問題 場景&#xff1a; 復雜度較大的計算&#xff08;解析&#xff09;某個數值、加解密計算等請求中遇到阻塞&#xff0c;避免長時間等待網絡波動&#xff0c;避免長時間請求&#xff0c;浪費時間 1. requests 請求超時機制 reqeusts 依賴中的…

[大師C語言(第十九篇)]C語言函數式編程技術詳解

引言 函數式編程&#xff08;Functional Programming&#xff0c;FP&#xff09;是一種編程范式&#xff0c;強調通過使用純函數和不可變數據來編寫代碼。這種范式具有許多優點&#xff0c;如易于測試、可維護性高、并發友好等。盡管C語言被認為是一種過程式編程語言&#xff…

JAVA設計模式-策略模式及在Springboot2.X中寫法

JAVA設計模式-策略模式及在Springboot2.X中寫法 一、經典的策略模式寫法二、Springboot2.X中策略模式寫法 策略模式的定義&#xff1a;策略模式是一種行為型設計模式,定義了一系列算法,并將每個算法封裝起來,使它們可以互相替換 策略模式&#xff1a;在策略模式&#xff08;Str…

算法 java 排序和查找

排序和查找 冒泡排序&#xff08;穩定&#xff09;選擇排序&#xff08;不穩定&#xff09;插入排序&#xff08;穩定&#xff09;希爾排序&#xff08;不穩定&#xff09;歸并排序&#xff08;穩定&#xff09;快速排序&#xff08;不穩定&#xff09;堆排序計數排序桶排序基數…

YOLOv8+PyQt5海洋船只檢測(可以重新訓練,yolov8模型,從圖像、視頻和攝像頭三種路徑識別檢測)

1.效果視頻&#xff1a;海洋船只檢測yoloV8檢測&#xff08;https://mbd.pub/o/bread/mbd-ZpaYk55r&#xff09;_嗶哩嗶哩_bilibili資源包含可視化的海洋船只檢測系統&#xff0c;可對于高空拍攝到的海洋圖片進行輪船檢測&#xff0c;基于最新的YOLOv8訓練的海洋船只檢測模型&a…

多線程知識-11

Runnable 和 Thread 用哪個好 使用Runnable接口的好處是&#xff1a; 避免了單繼承的限制&#xff1a;當你的類已經繼承了另一個類時&#xff0c;你仍然可以實現Runnable接口來創建線程。提高代碼的復用性&#xff1a;你可以將Runnable對象傳遞給多個線程來執行&#xff0c;從…

C++設計模式-策略模式,AI角色動態選擇行為

運行在VS2022&#xff0c;x86&#xff0c;Debug下。 27. 策略模式 策略模式讓算法的選擇與使用獨立開來&#xff0c;使得代碼更靈活、可擴展和易維護。應用&#xff1a;如在游戲開發中&#xff0c;AI角色需要根據環境和條件做出不同的行為&#xff0c;如尋路、攻擊、躲避等。可…

深度解析CSS中為什么會有Stacking Context的概念

CSS中的堆疊上下文&#xff08;Stacking Context&#xff09;概念是為了管理和控制網頁元素的重疊順序而引入的。堆疊上下文的引入解決了以下幾個關鍵問題&#xff1a; 層次管理&#xff1a; 在網頁中&#xff0c;多個元素可能會相互重疊&#xff0c;堆疊上下文定義了這些元素的…

01-CompressionWebpackPlugin---提高 Web 應用性能的利器

CompressionWebpackPlugin—提高 Web 應用性能的利器 筆記分享 在現代 Web 開發中&#xff0c;優化資源加載速度是提升用戶體驗的重要環節。減少文件大小可以顯著提升網頁加載速度&#xff0c;從而改善用戶體驗。CompressionWebpackPlugin 是一個強大的 Webpack 插件&#xff…