原创 JDK1.8對集合List的去重,排序,過濾,分組,統計各種處理實例詳解

JDK1.8對集合List的去重,排序,過濾,分組,統計等操作,其實用到的是JDK1.8新特性stream, 首先對stream的操作可以分爲兩類,中間操作(intermediate operations)和結束操作(terminal o

原创 Redis實現Mybatis的二級緩存

一、Mybatis的緩存 通大多數ORM層框架一樣,Mybatis自然也提供了對一級緩存和二級緩存的支持。一下是一級緩存和二級緩存的作用於和定義。       1、一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造 s

原创 abstract class和interface的區別

在Java語言中,abstract class和interface是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的面向對象能力。abstract class和interface之間在對於抽象類定義的支持方面具有

原创 java修改操作出錯:could not retrieve transation read-only status server

一、問題描述 我們一般在寫新增、修改、刪除操作業務代碼時通常都比較簡單,一般不會出現運行錯誤,但這次操作的是三張表(一張主表,二張關聯表)出現了:could not retrieve transation read-only st

原创 elastic-job控制檯elastic-job-lite-console部署

一、環境準備:jdk,maven 安裝jdk和maven後一定要設置環境變量,否則mvn clean install 出錯。 jdk環境變量設置:https://jingyan.baidu.com/article/6dad5075

原创 對Java BIO、NIO、AIO 學習

一、Java對BIO、NIO、AIO的支持 Java BIO(Block I/O) : 同步並阻塞,服務器實現模式爲一個連接一個線程,即客戶端有連接請求時服務器端就需要啓動一個線程進行處理,如果這個連接不做任何事情會造成不必要的

原创 線程池的原理及java實現

一、線程簡介 創建線程有兩種方式:繼承Thread或實現Runnable。Thread實現了Runnable接口,提供了一個空的run()方法,所以不論是繼承Thread還是實現Runnable,都要有自己的run()方法。     一個

原创 基於redis分佈式鎖實現“秒殺”

最近在項目中遇到了類似“秒殺”的業務場景,在本篇博客中,我將用一個非常簡單的demo,闡述實現所謂“秒殺”的基本思路。 業務場景 所謂秒殺,從業務角度看,是短時間內多個用戶“爭搶”資源,這裏的資源在大部分秒殺場景裏是商品;將業務抽象

原创 匿名內部類及如何訪問外部變量

一、java中匿名內部類 1、匿名內部類也就是沒有名字的內部類 2、正因爲沒有名字,所以匿名內部類只能使用一次,它通常用來簡化代碼編寫 3、但使用匿名內部類還有個前提條件:必須繼承一個父類或實現一個接口 二、實現抽象方法不使用匿名

原创 一致性哈希與普通哈希對比

普通哈希算法     假如有cache主機5臺分別爲cacheA、cacheB、cacheC、cacheD、cacheE     當程序進行hash時,首先每個節點要根據自己的唯一參數哈希出一個值來(如根據ip進行哈希)    

原创 Method的invoke()方法的使用

一、爲什麼要用invoke方法 主要是爲了類反射,這樣你可以在不知道具體的類的情況下,根據配置的字符串去調用一個類的方法。在靈活編程的時候非常有用。 二、實現方法public Object invoke(Object obj,Obje

原创 java 用線程異步導出excel

一、前言 現在用的比較多的都是用POI技術來導出Excel,對於導出數據量不大的直接用POI技術按部就班實現即可,但是對於數據量大且需要導出的數據封裝業務較複雜,單純的用POI技術實現在高併發導出數據量較大時就會出現應用程序內存溢出,爲了

原创 Guava Cache用法介紹

一、Guava是什麼 Guava是一種基於開源的Java庫,Google Guava源於2007年的"Google Collections Library"。這個庫是爲了方便編碼,並減少編碼錯誤。這個庫用於提供集合,緩存,支持原語句,併發

原创 分佈式鎖簡單入門以及三種實現方式介紹

很多小夥伴在學習Java的時候,總是感覺Java多線程在實際的業務中很少使用,以至於不會花太多的時間去學習,技術債不斷累積!等到了一定程度的時候對於與Java多線程相關的東西就很難理解,今天需要探討的東西也是一樣的和Java多線程相關的!

原创 mysql索引優化思路(優化UCP的慢SQL總結)

(1)能用唯一索引不要用普通索引,能用組合索引儘量不用單列索引。 (2)索引不會走包含有NULL的列,只要列中包含有NULL值,都將不會被包含在索引中,組合索引中只要有一列含有NULL值,那麼這一列對於此組合索引就是無效的。 (3)ord