原创 算法工具 B+Tree 可視化

通過B+Tree 可視化 直觀操作理解下B+Tree的插入,查找,更新和刪除過程 https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html 數據結構可視化: https:/

原创 Redis緩存穿透、緩存雪崩、redis併發問題 併發競爭key的解決方案

1. 緩存穿透 在大多數互聯網應用中,緩存的使用方式如下圖所示: 1、當業務系統發起某一個查詢請求時,首先判斷緩存中是否有該數據; 2、如果緩存中存在,則直接返回數據; 3、如果緩存中不存在,則再查詢數據庫,然後返回數據。 瞭解

原创 數據庫建表規則(三大範式)

數據庫設計三大範式 爲了建立冗餘較小、結構合理的數據庫,設計數據庫時必須遵循一定的規則。在關係型數據庫中這種規則就稱爲範式。範式是符合某一種設計要求的總結。要想設計一個結構合理的關係型數據庫,必須滿足一定的範式。 在實際開發中最爲

原创 Java併發之Semaphore的使用

一.簡介   Java併發包中另外一個重量級的類Semaphore,這個類從字面意義上理解是"信號量"。   那麼什麼是信號量呢?我用一種比較通俗的方式來跟大家解釋一下,就是在該類初始化的時候,給定一個數字A,每個線程調用acquire(

原创 如何防止惡意攻擊短信驗證碼接口

1、手機號碼限制:限制單個手機號碼每天的最大發送次數。超過次數不能發送短信,可以考慮將手機號碼加入黑名單,禁止1天。 2、短信發送時間間隔限制:限制同一個手機號碼重複發送的時間間隔。通常設置爲60-120秒,前端做倒計時限制,時間未到不能

原创 多線程面試題

1.什麼是線程 線程是操作系統能夠進行運算調度的最小單位,它被包含在進程之中,是進程中的實際運作單位。程序員可以通過它進行多處理器編程,可以使用多線程對運算密集型任務提速。比如,如果一個線程完成一個任務要100 毫秒,那麼用十個線

原创 後端 Date 時間 傳到前端,相差8小時

1.問題 後臺時間正確,返回給前臺的時間不正確,和後臺差8個小時 後臺打印的時間如下: 數據庫存儲時間如下: 接口返回給前臺的時間如下: 相差8個小時 原因 spring中對於@RestController或者@Contro

原创 java類的實例化順序

java類的實例化順序 1. 父類靜態成員和靜態初始化塊 ,按在代碼中出現的順序依次執行 2. 子類靜態成員和靜態初始化塊 ,按在代碼中出現的順序依次執行 3. 父類實例成員和實例初始化塊 ,按在代碼中出現的順序依次執行 4. 父

原创 基本類型和包裝類型的區別

Java 的每個基本類型都對應了一個包裝類型,比如說 int 的包裝類型爲 Integer,double 的包裝類型爲 Double。基本類型和包裝類型的區別主要有以下 4 點。 01、包裝類型可以爲 null,而基本類型不可以

原创 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.iba

原创 Java jdk8實現 部門樹的遞歸編寫(代碼簡單)

這段代碼比較簡單,主要是 JDK8新特性之Stream流的應用,還有遞歸寫法而已。JDK8新特性之Stream流網上有很對例子講解,這裏就不做講解了。 直接上代碼吧,不懂得可以留言 package com.otc.infra.ut

原创 SpringBoot 打jar包 部署啓動

1、配置好電腦 maven 環境變量 2、項目的maven配置. pom.xml  文件      主要內容:(1) 設置 packaging 爲jar  (2)configuration 爲SpringBoot 項目啓動類。 <pro

原创 mybatis 一對一,一對多

model 類: //班級 public class Clazz implements Serializable{ private Integer claId; private String claName; } //教師 pub

原创 使用了mybatis級聯查詢,結果通過springboot返回json時報的錯

報錯如下: 2019-07-03 16:42:04.486 ERROR [infra-app,7738e9d06a2b0d76,7738e9d06a2b0d76,true] 7912 --- [  XNIO-1 task-3] c.o.w

原创 swagger報錯 java.lang.NumberFormatException: For input string: ""

  swagger報錯如下: java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputStrin