原创 Spring和Java獲取properties文件的幾種方式

前言 獲取properties文件的方式大致可以分爲spring獲取和java自身獲取兩種。接下來我會主要從這兩方面爲大家演示每種方式獲取的例子。 環境準備: 1.新建一個springboot項目 2.需要引入的pom依賴

原创 分佈式ID生成之雪花算法

分佈式ID生成--雪花算法 一.背景介紹 SnowFlake 算法,是 Twitter 開源的分佈式 id 生成算法。其核心思想就是:使用一個 64 bit 的 long 型的數字作爲全局唯一 id。在分佈式系統中的應用十分廣泛,且ID

原创 wait(), notify(), notifyAll(),join(),sleep(),yield()等方法介紹

一.概述 本篇文章會對線程等待/喚醒方法進行介紹。涉及到的內容包括:1. wait(), notify(), notifyAll(),join(),sleep(),yield()等方法介紹 2. wait()和notify() 3.

原创 如何一行代碼實現List 平均分成N份?

public class GuavaDemo { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2

原创 設計模式之單例模式

前言       說起設計模式大家肯定都不陌生,經常會聽到人說起springbean的單例模式,工廠模式,責任鏈模式等等,一些耳熟能詳的模式滿天飛,今天就和大家一起聊聊單例模式的好處和缺點,以及如何選擇合適的實現方式。 什麼是單例模式  

原创 zookeeper安裝和 windows環境下使用的注意事項

一.概述 ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、

原创 Dom4j 解析XML文檔

最近同學問我一個問題關於gz壓縮文件解析XML文檔,然後就自己研究了一下性能最好的Dom4j,記錄一下測試的過程。 XML文檔示例: <?xml version="1.0" encoding="utf-8" ?> <order> <

原创 Linux查詢日誌常用命令

前言    作爲一名開發人員,Linux環境肯定不陌生,當我們的項目出現了問題,那麼Linux下的日誌操作顯得尤爲重要,今天我們就一起分析一下日常常用的日誌查詢操作命令。 tail 命令格式:tail [必要參數] [選擇參數] [文件]

原创 CentOS 6 7 8鏡像下載

CentOS 8: 官網下載鏈接:https://www.centos.org/download/ 或者 http://vault.centos.org/ 均可 點擊之後地址跳轉到:http://isoredirect.centos.o

原创 java,javac,javac -d,javap -c 基本用法

示例: package com.util.execute.base; public class MyJava { public static void main(String[] args) { int a =1; int

原创 Md5Util工具類

public class Md5Util { /** * 簽名字符串 * @param text 需要簽名的字符串 * @return 簽名結果 */ public stati

原创 線程髒讀產生的原因以及如何避免

髒讀產生的原因:當一個線程操作一個對象未加同步方法時修改了共享資源的內容,在修改的過程中,只修改了一半時,恰好另一個線程讀取到了還未修改完的值,此時便產生了髒讀。 避免方法:在對象修改和獲取值的方法上添加同步鎖,即可避免。

原创 Spring自帶BeanUtils.copyProperties(Object source, Object target)之坑

一直以來都打算準備寫點東西,把所學所思的東西記錄下來,方便日後學習和總結。但是由於之前技術水平有限,不敢隨便發表一些技術文章,以免誤人子弟,一直拖了三年,現在我積累了一定的經驗,纔敢勉強公開發表自己的一些認知和見解,如有不對之處,希望大家

原创 對象轉換工具類BeanUtil

public class BeanUtil { private static final Logger logger = LoggerFactory.getLogger(BeanUtil.class); /** *

原创 JVM指令手冊

棧和局部變量操作 將常量壓入棧的指令 aconst_null 將null對象引用壓入棧 iconst_m1 將int類型常量-1壓入棧 iconst_0 將int類型常量0壓入棧 iconst_1 將int類型常量1壓入棧 iconst_