原创 Java淺拷貝和深拷貝的區別

淺拷貝和深拷貝的區別 淺拷貝和深拷貝都是複製對象,複製出來的對象,它們的內存地址都是重新分配的,區別在於淺拷貝對象中的引用類型和原對象中的引用類型指向同一個內存地址,而深拷貝對象中的引用類型的內存地址是重新分配的,也就是說,淺拷貝

原创 時間相關的統計工具

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; public class StatisticsUti

原创 windows同時安裝不同版本的jdk

背景 我首先安裝了jdk8,但是公司的maven配置的是jdk7,爲了避免已有的項目出現編譯環境的問題,因此又安裝了jdk7。 出現的問題 修改環境變量JAVA_HOME,指向jdk7的路徑,但是在cmd中執行java -vers

原创 Java各種數據類型序列化

對象序列化是一個用於將對象狀態轉換爲字節流的過程,可以將其保存到磁盤文件中或通過網絡發送到任何其他程序;從字節流創建對象的相反的過程稱爲反序列化。 可以理解爲序列化是將數據轉換成byte[]的表示方式。 對象序列化 首先要實現

原创 commons.cli命令行交互

public static void main(String[] args) throws ParseException { String[] p = {"-h"}; parse(p, "test"); } pu

原创 Java獲取泛型真實類型的方法

獲取泛型類的泛型 public abstract class AbstractDao<T> { public Class<T> getActualType() { ParameterizedType p

原创 單元測試數據構造工具

調用newData方法,傳入指定Bean的Class類型,自動根據set方法構建隨機數據,注意,這裏的set方法是指屬性的set方法!具體用法參見代碼的main方法。 public class Tools { publi

原创 Collections內部類EmptyList/EmptySet/EmptyMap的坑

Collections的emptyList、emptySet、emptyMap方法返回的集合不能正常使用。 以emptyList爲例,它是Collections內部實現的EmptyList,是List的一個實現,但是它沒有實現ad

原创 RocketMQ實戰經驗

服務端通過Tag過濾時,同一個消費組的消費者訂閱同一個Topic只允許一個Tag(*或者明確的一個Tag,或者以 || 分隔的Tags),後啓動的會覆蓋先啓動的Tag;不同消費組的消費者訂閱同一個Topic,允許不同組過濾不同

原创 docker常用命令

鏡像命令 docker images: 查看鏡像 鏡像名稱 版本 鏡像ID 創建時間 虛擬大小 REPOSITORY

原创 InnoDB引擎之Order By排序優化

InnoDB引擎有兩種排序方式 對返回的數據進行排序,Explain的Extra列顯示using filesort,所有不是通過索引直接返回排序結果的排序都稱爲Filesort 通過有序索引順序掃描直接返回有序數據,Explai

原创 Java實現等額本金

import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashMap

原创 Java實現等額本息

import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashMap

原创 Java多線程run方法中一定要用try...catch

多線程編程中,run方法中的代碼一定要用try...catch包裹,否則會出現如下問題 run方法中使用while循環,沒有try和try在while外面是等價的,當run方法中出現異常,會導致while循環結束 // 錯誤示

原创 InnoDB索引優化和正確的使用索引

Innodb 存儲引擎的表數據和索引是存儲在同一個表空間裏面,在一定程度上索引的效率沒有MyISAM快,但這絲毫不影響InnoDB存儲引擎成爲主流的存儲引擎。 拓展:MyISAM 存儲引擎的表的數據和索引是分開存儲的,即每個 My