原创 【tomcat】08 Server組件與Service組件

一、介紹 1、Server組件和Service組件是Tomcat核心組件中最外層級的兩個組件,Server組件可以看成Tomcat的運行實例的抽象,而Service組件則可以看成Tomcat內的不同服務的抽象。 2、Server組

原创 Redis學習筆記10 、Redis數據類型

一、Redis 五種類型 1、String(字符串類型) 2、Hash(哈希類型) 3、List(列表類型) 4、Set(集合類型) 5、Zset(有序集合類型) 二、操作 1、String類型是Redis中最簡單的數據結構。

原创 【JUC】02 CAS 算法

一、介紹 1、CAS (Compare-And-Swap) 是一種硬件對併發的支持,針對多處理器 操作而設計的處理器中的一種特殊指令,用於管理對共享數據的並 發訪問。 2、CAS 是一種無鎖的非阻塞算法的實現。 3、CAS 包含了

原创 【Java內存模型】02 Java 內存模型 同步操作、同步規則

一、同步八種操作 1、lock(鎖定): 作用於主內存的變量,把一個變量標識爲一條線程獨佔狀態 2、unlock(解鎖): 作用於主內存的變量,把一個處於鎖定狀態的變量釋放出來,釋放後的變量纔可以被其他線程鎖定。 3、read(讀

原创 【高併發】01併發與高併發

一、併發與高併發 概念 1、併發: 同時擁有兩個或者多個線程,如果程序在單核處理器上運行,多個線程交替地換入或者換出內存,這些線程是同時“存在”的,每個線程都處於執行過程中的某個狀態,如果運行在多核處理器上,此時,程序中的每個線

原创 Redis學習筆記12、Jedis基礎編程的實踐案例List、 Hash

1、List package com.example.actuatordemo.redis; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.Jedis;

原创 Redis學習筆記15 使用spring-data-redis完成CRUD的實踐案例

一、介紹 1、Java開發,都會使用了Spring框架,可以使用spring-data-redis開源庫來簡化Redis操作的代碼邏輯,做到最大程度的業務聚焦。 2、創建緩衝 創建(Create)一個POJO實例的時候,對POJ

原创 【JUC】04-CountDownLatch 閉鎖

一、介紹 1、Java 5.0 在 java.util.concurrent 包中提供了多種併發容器類來改進同步容器 的性能。 2、 CountDownLatch 一個同步輔助類,在完成一組正在其他線程中執行的操作 之前,它允許一

原创 Redis學習筆記13、Jedis基礎編程的實踐案例Zset、Set

1、Java 操作set package com.example.actuatordemo.redis; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.

原创 【JUC】03-原子變量

一、介紹 1、類的小工具包,支持在單個變量上解除鎖的線程安全編程。此包中的類可 將 volatile 值、字段和數組元素的概念擴展到那些也提供原子條件更新操作的類。 import java.util.concurrent.ato

原创 【JUC】05- ConcurrentHashMap

一、介紹 1、Java 5.0 在 java.util.concurrent 包中提供了多種併發容器類來改進同步容器 的性能。 2、 ConcurrentHashMap 同步容器類是Java 5 增加的一個線程安全的哈希表。對 與

原创 【編程思想】01 編寫高質量代碼、Java 開發中通用的方法和準則

1、【建議】: 不要在常量和變量中出現易混淆的字母 基本規範:包名全小寫,類名首字母全大寫,常量全部大寫並用下劃線分隔,變量採用駝峯命名法(Camel Case)命名等。 爲了讓程序更容易理解,字母“l”(還包括大寫字

原创 【JUC】 01-volatile 關鍵字 內存可見性

一、內存可見性 1、內存可見性(Memory Visibility) 指當某個線程正在使用對象狀態 而另一個線程在同時修改該狀態,需要確保當一個線程修改了對象 狀態後,其他線程能夠看到發生的狀態變化。 2、可見性錯誤 指當讀

原创 【高併發】02 併發工具測試類

1、Postman:模擬Http請求 2、Apache Bench(AB): Apache 附帶的工具,測試網站性能 # ab -n 1000 -c 50 http://localhost:8080/hello -n: 併發總