原创 返回List元素 相同且相鄰元素 的起始下標
需求如圖所示,僞代碼如下(返回List元素相同且相鄰元素的起始下標,沒有相同的就返回他的下標) public static void main(String[] args) { List<String> list
原创 多線程(帶返回值)異步處理任務的一種思路
直接上Demo Code: import lombok.extern.slf4j.Slf4j; import java.util.concurrent.Callable; import java.util.concurrent.
原创 Cglib動態生成Bean
在動態生成表格的場景裏Cglib的動態生成Bean很簡單實用,分享下demo。 import com.alibaba.fastjson.JSON; import net.sf.cglib.be
原创 小記Spring工具類MultiValueMap
在看Zuul的源碼(org.springframework.cloud.netflix.zuul.util.RequestContentDataExtractor.java)時發現一個從來沒見過的MultiValueMap,點進
原创 Mybatis+Oracle數據增量Sql(有則忽略,沒有則新增)
接口: Integer batchSave(@Param("areaPointVOS")List<AreaPointVO> areaPointVOS); 實現: 把所有對象的屬性放到臨時表B中,然後通過ON來匹配條件,注意
原创 Java8 Stream 對List集合對象的兩個屬性進行分組
利用 Collectors.groupingBy分組,簡單實用,上demo public static void main(String[] args) { List<ProArea> infoVOS = List
原创 工廠模式+門面模式+策略模式的易懂易記示例
代碼模擬這樣一個場景:客戶要蓋房子,需要去勞務市場找個合適的包工頭來承包自己的工程,找到了合適的包工頭,最後開工。 客戶蓋房子流程圖....大概就這麼個意思 我按照自己的理解用代碼來逐一剖析、實現這個場景: 1、蓋
原创 @Value在static變量上的使用
網上有很多誤導人的博文,在此親測記錄下。 下面介紹兩種方法,要注意這兩種方法必須在類上加@Component註解,這樣Spring容器在加載時纔會初始化相應註解下的方法。 1、 set注入法: private sta
原创 清除本地Git倉庫中在遠程已經刪除的分支小記
控制檯下執行如下命令行即可: git remote prune origin 詳情可參見 https://blog.csdn.net/wangqingpei557/article/details/53147086
原创 遞歸獲取複雜嵌套JSON(json長什麼樣並不能確定,但一定是對象Key-Value的形式)的所有Key和Value
直接上代碼(遞歸有風險,棧太深會溢出,可考慮使用while代替) 遞歸實現: /** * @Auther: liuzujie * @Date: 2020/2/26 16:25 * @Desc:
原创 淺析Oracle varchar2類型及根據字符集獲取在Java中的字符字節/截取工具類
首先varchar2(byte)最大是4000字節。 varchar2(50) 表示該字段類型爲varchar2類型,長度爲50,可以存單字節字符50個。 長度跟你的字符集和其編碼都有關係: 如果字符集是16位
原创 簡單實用的驗證碼工具
1、直接上工具類代碼 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.FileOu
原创 redis incr和incrBy的使用
最近用incr和incrBy在接口裏做了下埋點統計每天請求總數,這兩個命令還是挺好用的,先說下這倆命令吧 注:redis後臺服務是串行的單線程執行,不存在併發,即多線程調用Incr/incrby方法,在redis服務器上仍然是串行的單線
原创 在一個線程內開啓多線程(內部類)消費
與大家分享一種多線程實現異步消費的方式。基本思路是開啓一個主線程,在主線程內定義一個內部線程類,開啓多個內部線程類進行消費;代碼如下(不懂的話可以直接複製代碼跑一下): 1、首先有一個啓動主線程方法 import ja
原创 根據主鍵或唯一索引新增或更新數據(ON DUPLICATE KEY UPDATE)
ON DUPLICATE KEY UPDATE 會根據主鍵或唯一索引是否存在而進行新增或更新;如果不存在則新增,之後不會執行後面的更新; insert into student(number, name) values(45,‘張三’