原创 Redis 數據類型與應用場景

數據類型 應用場景 說明 String 各種計數器,比如評論計數器。 包含 decr,incr 命令,執行遞減與遞增操作。 List 各種列表,比如粉絲列表。 Set 標籤管理、共同好友、共同關注、共同愛好 無序集合

原创 說說 Java 的靜態內部類

Java 的靜態內部類就是定義在一個類的內部,並且標註爲 static 的類。由於類是靜態的,所以不需要通過外圍類的實例來創建。下面是一個示例: public class Outer { private static final

原创 說說 Redis 緩存穿透場景與相應的解決方法

Redis 緩存主要緩存穿透、緩存擊穿與緩存雪崩異常場景,今天我們來講講緩存穿透。 1 場景描述 緩存穿透是指客戶端請求一個緩存和數據庫中都不存在的 key。由於緩存中不存在,所以請求會透過緩存查詢數據庫;由於數據庫中也不存在,所以也沒辦法

原创 在命令行運行 python 拋出 ModuleNotFoundError 的解決方法

所要運行的 py 文件在子目錄中,並且該文件引用了另一個子目錄中的 py 模塊。類似這樣: 原因 在運行環境下, a.py 找不到 b.py 所以拋出 ModuleNotFoundError。 解決 把父文件夾的所在路徑加入運行環境,代碼

原创 說說 Redis 緩存刪除策略

Redis 緩存刪除策略分爲定時刪除、定期刪除與惰性刪除。前兩個是主動刪除,後一個是被動刪除。 1 定時刪除 爲 key 設置一個過期時間,時間一到,由定時器任務刪除這個 key。 優點:節省內存,因爲 key 一過期,就會被立即刪除。 缺

原创 說說 JSON 格式的弊端與解決方法

JSON 格式是目前最流行的數據交互格式,廣泛應用於前後端分離的系統。但也有一些場合不適合使用 JSON 格式。 1 JSON 格式弊端 有這樣的一個需求:希望把客戶端的日誌上傳到服務器存儲起來。原先的設計是把 JSON 格式寫入日誌文件。

原创 說說 Java 內部類的基本用法

先從一個示例說起。該示例實現了迭代器模式的數組,可添加、可遍歷數組內部的元素。而且還可以判斷是否已到了數組末尾。 首先定義了一個接口,本質上是一個迭代器: //迭代器接口 public interface Selector { /

原创 說說如何在 Java 中實例化某個類的內部類

前提是這個內部類必須是 public 。 假設外部類需要實例化某個類的內部類。那麼必須首先實例化內部類的所在類,然後再通過 .new 語法來實例化這個內部類。下面是一個示例: public class DotNew { public

原创 比較 Java 靜態工廠方法與構造函數

1 什麼是靜態工廠方法 Java 靜態工廠方法是在方法前加上 public static,讓這個方法變爲公開、靜態的方法。該方法返回該類的一個實例,就好像一個工廠生產出一個產品。所以稱之爲靜態工廠方法。在 Boolean.java 中有一個

原创 使用 Spring JdbcTemplate 框架出現 oracle 數據源連接泄露問題的解決方法

1 問題 應用運行一段時間之後,無法執行寫入數據庫操作。底層使用的是 druid 連接池。 2 原因 使用 Spring JdbcTemplate 框架執行 oracle sql 語句之後,發現邏輯連接沒有釋放: 而同一套代碼執行 Pos

原创 說說在 Android 中如何不使用 findViewById() 來獲取資源對象

1 安裝 在 build.grade 中加入以下配置[1]: apply plugin: 'kotlin-android-extensions' 點擊 “Sync Now” 進行安裝: 2 使用 在 Activity 類中導入 impo

原创 Java jar 命令行運行程序如何引用第三方依賴包

1 引言 mybatis generator 是一個命令行運行工具,可以生成 mybatis 代碼。但它需要依賴數據庫驅動 jar,否則會拋出 ClassNotFoundException 異常。 Exception in thread "

原创 分佈式事務框架 Seata 與 Hmily 橫向比較

github 數據來源於2021.12。 從支持的模式種類、團隊規模來看,Seata 框架更佔優勢。

原创 Android Studio 執行 Kotlin 拋出 com.android.builder.errors.EvalIssueException 問題的解決方法

異常具體信息: Caused by: com.android.builder.errors.EvalIssueException: Android Gradle plugin requires Java 11 to run. You are

原创 說說在 Java 中如何比較兩個對象

Common Lang 中的 Builder 包內提供了一個 DiffBuilder 類,可以比較兩個對象,並返回不同的部分。 首先在要比較對象的類中實現 Diffable 接口,然後實現 DiffResult diff(T obj)