原创 設計模式(二)—— 代理模式

簡述 代理模式是提供對目標對象另外一種訪問方式的模式; 優點:可以在目標對象實現的基礎上,添加額外的功能,即擴展目標對象的功能; 思想:在添加對目標對象新的操作時,不用修改別人的代碼,只需要通過代碼對象,去擴展目標對象新的功能;

原创 TOP K問題的解決方案

1.1 代碼實現 1.2 複雜度分析 2.快速排序法 2.1 代碼實現 2.2 複雜度分析 3.堆排序法 3.1 代碼實現 3.2 複雜度分析 4. 方法比較        Top K是很常見的一種問題,是指在N個數的無序序列中找

原创 SQL優化及索引失效彙總

SQL優化方案 注意具有索引列的查詢條件,避免造成索引失效(具體看如下的索引失效規則) 對於數據重複多的列,無需建立索引 索引並非越多越好,索引越多,對增刪改的速度就會越慢 select 結果中,避免使用*符號,只返回有用的字段

原创 華爲隱私保護通話接入總結

1 概述 1.1 背景 挪車服務中,使用虛擬號碼保護車主手機號碼隱私信息;實現用戶B在需要挪車時,使用微信小程序掃碼從SAAS服務中獲取到一虛擬號碼,可通過撥打該虛擬號碼接通至車主的真實號碼中。實現雙方的隱私通話。 2 華爲隱私號

原创 Java多線程學習:子線程中無法使用Spring的依賴注入

在實現Java多線程的時候,發現使用@Autowired或者@Resource依賴注入的類都會報空指針異常(NullPointerException)。 原因: spring的聲明週期,在工程啓動時,並不會檢測到線程類中的bean

原创 高可靠的消息投遞機制

簡介 開發中會經常使用都消息中間件來進行消息同步操作。但往往會因爲各種原因導致消息在投遞至消息代理服務器的過程出現意外。確保消息同步的高可靠,至少需要做到兩點: 同步失敗記錄:確保清楚哪些消息同步失敗; 再次投遞消息:確保在失敗後

原创 Gitlab的CI/CD學習(二) —— .gitlab-ci.yml文件

簡介 背景 目前市面上常用的自動化部署的工具比較常見的是Jenkins,但是使用過程中,總會遇到各種奇奇怪怪的錯誤,很難定位問題所在;今天我要介紹的gitlab中的CI/CD功能,個人覺得部署起來更加簡單,有效,易排查,可視化界面

原创 Gitlab的CI/CD學習(三) —— gitlab-runner

簡介 背景 目前市面上常用的自動化部署的工具比較常見的是Jenkins,但是使用過程中,總會遇到各種奇奇怪怪的錯誤,很難定位問題所在;今天我要介紹的gitlab中的CI/CD功能,個人覺得部署起來更加簡單,有效,易排查,可視化界面

原创 Gitlab的CI/CD學習(一) —— 簡介

Gitlab的CI/CD介紹 簡介 背景 目前市面上常用的自動化部署的工具比較常見的是Jenkins,但是使用過程中,總會遇到各種奇奇怪怪的錯誤,很難定位問題所在;今天我要介紹的gitlab中的CI/CD功能,個人覺得部署起來更加

原创 Mysql索引詳解

原文鏈接:https://blog.csdn.net/qq_32679835/article/details/94166747 文章目錄一、爲什麼需要索引?(索引的優缺點)1、索引產生的意義2、索引的優缺點二、索引的分類三、B樹

原创 Spring AOP中切入點@Pointcut的使用

切入點@Pointcut的使用 在確定切面aspect之後,需要在切面上確定切入點pointcut 定義 註解@pointcut("{切入點}") 其中{切入點}格式如下: execution(modifiers-pattern?

原创 Spring Cloud理論知識點

概述 什麼是微服務? 通常而言,微服務架構指的是一種架構模式或者說一種架構風格;它提倡的是將單一應用程序劃分成一組小的服務,每個微服務提供單個業務功能,一個服務做一件事。 每個服務獨立運行於自己的進程,服務之間互相協調、互相配合

原创 數據庫常用的隔離級別

數據庫常用的隔離級別 四大特性 任何支持事務的數據庫,都必然具備四大特性ACID: 原子性(Atomicity):說的是一個事物內所有操作共同組成一個原子包,要麼全部成功,要麼全部失敗。這是最基本的特性,保證了因爲一些其他因素

原创 Java集合與Map的實現原理

集合關係圖 Collection 集合共有的父類接口 ,包含集合的共性方法:add、remove、Iterator、contains、clear… 迭代器 Iterator 它的作用是將各種不同集合的“判斷”與“取出”操作封裝成一