原创 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