原创 ReentrantLock(重入鎖)
ReentrantLock 先看一段程序: public class DemoT { // 定義一個共享變量 private static int count = 0; // 用來操作共享變量的方法
原创 java-鎖得升級(概念):偏向鎖--輕量級鎖--重量級鎖
偏向鎖: 在大多數情況下,鎖不僅僅不存在多線程的競爭,而且總是由同一個線程多次獲得。在這個背景下就設計了偏向鎖。偏向鎖,顧名思義,就是鎖偏向於某個線程。 當一個線程訪問加了同步鎖的代碼塊時,會在對象頭中存儲當前線程的ID,後續這個線程進入
原创 ReentrantReadWriteLock(重入讀寫鎖)
ReentrantReadWriteLock 先寫一段原始代碼 public class Demo3 { //共享變量 static int count = 0; public static void
原创 多線程線程安全之保證可見性
在單線程的環境下,如果向一個變量先寫入一個值,然後在沒有寫干涉的情況下讀取這個變量的值,那這個時候讀取到的這個變量的值應該是之前寫入的那個值。這本來是一個很正常的事情。但是在多線程環境下,讀和寫發生在不同的線程中的時候,可能會出現:讀線程
原创 java 使用Qrcode 生成“有圖片、無圖片”兩種類型 二維碼
二維碼分爲兩種,一種是 中心有logo的,一種是無logo的,只有二維碼內容 這裏提供一個工具類,測試類 1.工具類,(工具類中有相關注解,就不解釋什麼意思了) package com.jeecg.demo.utils; import
原创 重要.唯一字段,怎麼確保獲取"唯一"流水號
流水號,一般是組成編號的一部分,用來實現計數,以及使編號唯一, 一:採用redis.incr獲取 可以採用使用redis的 "incr"方法獲取,不過有個侷限性,就是redis不可刪除緩存,如果刪除掉之後,會將編號清零,重新計數(附r
原创 spring mvc 通過aop記錄請求數據和響應數據
本文爲轉載文章,轉載地址:https://www.cnblogs.com/wujf/p/8337832.html package com.chxc.filter; import java.util.Arrays; import ja
原创 Excel導出/導出工具類(POI)
在項目中多次操作poi來做導入導出操作,然後整理了兩個工具類,一個導入,一個導出.方便之後的使用. 一.工具類代碼: package com.chcx.excel; import org.apache.poi.xssf.usermod
原创 高性能MySql第三版 閱讀簡記(3)
目錄 調用EXPLAIN 一些說明: EXPLAIN中的列 id列 select_type列 table列 type列 possibIe_keys列 key列 key_len列 ref列 rows列 fiItered列 E
原创 高性能MySql第三版 閱讀簡記(1)
第4章 Schema與數據類型優化 4.1 選擇優化的數據類型 MySQL支持的數據類型非常多,選擇正確的數據類型對於獲得高性能至關重要。不管存儲哪種類型的數據,下面幾個簡單的原則都有助於做出更好的選擇。更小的通常更好。 一般情況下,應該
原创 高性能MySql第三版 閱讀簡記(2)
第4章 Schema與數據類型優化 4.1 選擇優化的數據類型 4.1.3 字符串類型 VARCHAR和CHAR類型 VARCHAR和CHAR是兩種最主要的字符串類型。不幸的是,很難精確地解釋這些值是怎麼存儲在磁盤和內存中的,因爲這跟存儲
原创 使用"merge into",ORACLE批量更新優化,將A表字段的值,變更爲B表字段值.
1.建測試表語句 CREATE TABLE MERGE_DATA_DEMO1 ( ID1 VARCHAR2(32), NAME1 VARCHAR2(100) ); COMMENT ON TABLE MERGE_DATA_
原创 Oracle12c ORA-65114:容器中的空間使用率太高
-- 天工作中,發現Oracle12c數據庫中有2個表空間使用率比較高,於是按照常規做法進行相關表空間的擴展: alter database datafile '/app/oradata/zsdb/zsdb/xxxx.dbf' resi
原创 ORACLE使用批量插入測試數據
1.建表語句 CREATE TABLE test_data ( ID varchar(32), NAME1 int(9), NAME2 varchar2(100), NAME3 varchar2(100)
原创 oracle存儲過程實例,根據value字段信息變更name字段信息
建表插入數據語句 CREATE TABLE demo ( id varchar2(32), name varchar2(100), value varchar2(100) ); INSERT INTO "NEW