原创 JDK8 Map新特性compute、putIfAbsent、computeIfAbsent、computeIfPresent、merge函數用法

compute default V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) 對key

原创 面試問,創建多少個線程合適?

爲什麼要使用多線程? 防止併發編程出錯最好的辦法就是不寫併發程序 既然多線程編程容易出錯,爲什麼它還經久不衰呢? A:那還用說,肯定在某些方面有特長唄,比如你知道的【它很快,非常快】 我也很贊同這個答案,但說的不夠具體   併

原创 源碼解讀-Mybatis 攔截器實現原理

package org.apache.ibatis.session; public class Configuration { public ParameterHandler newParameterHandler(Mapped

原创 Btrace 線上調試代碼利器

Btrace 簡介 BTrace是sun公司推出的一款Java 動態、安全追蹤(監控)工具,可以在不用重啓的情況下監控系統運行情況,方便的獲取程序運行時的數據信息,如方法參數、返回值、全局變量和堆棧信息等,並且做到最少的侵入,佔用

原创 SpringBoot 前後端分離跨域及 session 不同問題

後端配置 方式1 @Configuration public class CorsConfig { @Bean public FilterRegistrationBean corsFilter() {

原创 MySQL索引實現

我們上一篇講了MySQL索引背後的數據結構及算法原理,我們知道了爲什麼使用索引查詢數據效率那麼高的原理了,我們接着看看MySQL的索引是如何實現的。   MySQL索引實現 在MySQL中,索引屬於存儲引擎級別的概念,不同存儲引擎

原创 什麼是 MySQL 索引?

什麼是索引? 假設我們有一張數據表 employee(員工表),該表有三個字段(列),分別是name、age 和address。假設表employee有上萬行數據(這公司還真大),現在需要從這個表中查找出所有名字是‘ZhangSa

原创 SpringBoot 中使用 freeMarker 生成 word 文檔

jar 包依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker

原创 理解OAuth 2.0

OAuth是一個關於授權(authorization)的開放網絡標準,在全世界得到廣泛應用,目前的版本是2.0版。 本文對OAuth 2.0的設計思路和運行流程,做一個簡明通俗的解釋,主要參考材料爲RFC 6749。 更新:我後

原创 工作流引擎(activiti、flowable)之bpmn配置文件詳解

bpmn文件是activiti或flowable配置流程定義的文件,一般一個bpmn文件定義一個流程,文件爲xml格式,各種元素級別如下: <?xml version="1.0" encoding="UTF-8"?> <defin

原创 SpringBoot WebMvcConfigurer詳解

一、WebMvcConfigurerAdapter是什麼 WebMvcConfigurer配置類其實是Spring內部的一種配置方式,採用JavaBean的形式來代替傳統的xml配置文件形式進行鍼對框架個性化定製,可以自定義一些H

原创 Java8 Base64 和文件互轉

import com.mysql.cj.util.StringUtils; import org.apache.commons.io.FileUtils; import org.springframework.util.Asser

原创 JVM 垃圾回收算法&垃圾收集器

對象是否可回收判斷方式 引用計數法 對象每被引用一次,其引用計數就+1,不再引用時就-1,這樣雖然簡單高效,但是無法解決互相引用的問題,比如A持有B,B持有A A a=new A(); B b =new B(); a.instan

原创 windows 下 goprotobuf 的安裝與使用

安裝 protoc 下載 protoc-3.11.2-win64.zip 壓縮包 https://github.com/protocolbuffers/protobuf/releases 將文件解壓到某一文件夾。 如:

原创 SpringBoot 整合 RabbitMQ 消息隊列

RabbitMQ的介紹 RabbitMQ是消息中間件的一種,消息中間件即分佈式系統中完成消息的發送和接收的基礎軟件。這些軟件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,現已經轉讓給apac