原创 使用枚舉來實現單例模式

單例模式的實現方式有很多種,詳情可以參考單例模式的7種實現方式及分析,從線程安全以及懶加載等角度來看其中第6種(double check)和第7種(靜態內部類)的實現方式都是值得推薦並且應用廣泛的,但是它們(包括第1到第7種)都

原创 java中的單例模式爲什麼需要懶加載?

想必很多朋友在java中都使用過單例模式,在網上搜索的時候也都查到過各種單例模式的實現,比如我之前寫的一篇博客:單例模式的7種實現方式及分析(https://blog.csdn.net/xyc_csdn/article/detai

原创 git忽略target目錄

1、目錄結構 2、.gitignore文件 *.class .DS_Store application.pid # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files

原创 代碼實踐之Job如何從MySql獲取數據

相信很多人都寫過Job,特別是對於從MySql進行大數據量(百萬級、千萬級甚至億級)的頻繁讀取,在這種場景下如何從數據庫查詢數據就不是一個簡單的問題了,查詢效率至關重要! 我們先看一下最常見也是應用最廣泛的寫法: select

原创 在java中如何正確的判斷字符串是否爲"空"

其實對於字符串判空來說不是什麼有難度的操作,甚至是低難度的,只是對於’\u0000’這個字符有的人可能還是比較陌生,而它就是這篇博客的重點! 我們先看一下’\u0000’打印出來的效果是什麼樣的吧,如下: 打印代碼 pub

原创 從項目遷移看項目分層

  最近在進行.net項目的轉java工作,儘管本身是個.net小白,但得益於這兩個語言的相似性,在語法上並沒有碰到什麼大的困難,有時候有問題也有一些同事可以請教,最大的問題反而是非語言層面的,例如其中的一點:項目分層!   其實我一

原创 記一次Hive平臺清洗數據

場景(簡化) 現有文章表Article和評論表Comment; 一篇文章可以有多個評論; 文章表Article主要字段(articleId); 評論表Comment主要字段(commentId,articleId,content,cr

原创 關於Map.getOrDefault方法的一個小坑

場景 對於某些情況下,我們不希望Map返回的值爲null,所以理所當然的想到了getOrDefault方法,我之前的想法是getOrDefault方法會在get到的結果爲null時返回默認值,然而卻不是。 代碼 Map<Strin

原创 關於"Specified key was too long; max key length is xxx bytes"

場景 給MySql數據庫表Varchar類型字段加索引時報錯:“Specified key was too long; max key length is xxx bytes”; 原因 字段太長導致無法加索引; 解決 修改字段長度,注

原创 utf-8和utf8mb4

MySQL在5.5.3版本之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode編碼(例如:Emoji表情等),utf8mb4是utf8的超集。 utf8 utf8

原创 SqlServer數據庫遷移至MySql注意點——

先看區別 SqlServer tinyint:範圍(0,255),存儲大小爲 1 字節 MySql tinyint:有符號範圍 ~ (-128,127),無符號範圍 ~ (0,255),存儲大小爲 1 字節 故當SqlServer

原创 SqlServer判斷函數是否存在並打印字符串

if exists (select * from sysobjects where xtype='fn' and name='函數名') print '存在函數xxx'; else print '不存在函數xxx';

原创 大數據思維

全樣而非抽樣; 效率而非精確; 相關而非因果;

原创 Hive平臺UDF調用實踐之亂碼

應用場景 從Hive數據倉庫批量撈取數據通過UDF中HttpURLConnection調用至服務端; 問題 服務端拿到的中文數據部分存在亂碼; 排查 1、查詢MySql數據庫,發現源數據非亂碼且編碼格式爲UTF-8; 2、查

原创 MQ百萬級數量調用注意點

注意消息的過期時間,大數據量的情況下消息的過期時間需要設置長一點; MQ最好可以提供版本號功能,對於批量調用失敗的批處理可以根據版本號作廢已經放入消息隊列中的消息;