原创 Jackson 反序列化 "Y"/"N" 爲相應的布爾值

JSON 表示布爾值標準的形式是 true  和  false,如果 Java 對應的類型是對象  Boolean,那麼在 JSON 中也可以是  null。如果收到 JSON 數據是用 'Y'/'N', 或 'Yes'/'No' 來表示

原创 Python 版的 try-with-resources -- with 上下文管理器

作爲一個  Java 爲母語的程序員來講,學習起其他新的語言就難免任何事都與 Java 進行橫向對比。Java 7 引入了能省去許多重複代碼的 try-with-resources 特性,不用每回 try/finally 來釋放資源(不便

原创 用 .pth 文件附加 Python 模塊搜索路徑

上一篇 Python 的模塊搜索路徑,介紹了 Python 的模塊搜索路徑,最終起作用的是 sys.path 路徑列表。如果要自定義自己的搜索路徑,就是要怎麼定製 sys.path 的內容。可以簡單的用 PYTHONPATH 環境變量前向

原创 Python 的模塊搜索路徑

一種語言要使用到外部庫(模塊) 時必然會涉及到從哪裏以及按何順序加載依賴,就像 LD_LIBRARY_PATH, CLASSPATH 那樣,Python 也有其默認的模塊搜索順序, 依序找到想要的模塊即停止。Python 中 sys.pa

原创 Kafka Producer 設置 Interceptor 來統計消息

Kafka 消息的 Producer 在調用 producer.send() 方法發送消息時會先把消息放到本地緩衝中,然後由  Kafka 網絡線程從緩衝中提取消息再送到 Kafka 代理上去。本地緩衝區大小由 buffer.memory

原创 相比於 Java 10 的 var, 更期待 Java 11 支持多行字符串

Java 六個月的版本迭代週期讓我們突然間有些喘不過氣來,又 Java 11 纔會是一個長期支持版本,如果可能的話我們將會是從 Java 8 直接往 Java 11 跳去。在 Java 8 大行其道,裹足不前的當下,談論着未來 Java

原创 Linux 下配置滾動日誌之 rotatelogs

上一篇 Linux 下配置滾動日誌之 logrotate, 介紹了定時服務 logrotate 的方式對日誌進行滾動,刪除舊歸檔。logrotate 是目前流行 Linux 發行版內置的定時服務,默認每日根據配置文件來滾動日誌文件。那麼它

原创 Java 8 Map 中新增的方法使用記錄

得益於 Java 8 的 default 方法特性,Java 8 對 Map 增加了不少實用的默認方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(k

原创 對 Java 9 把單個下劃線作爲關鍵字的猜想

我們知道 Java 的合法命名是以字母或下劃線開頭的字符串,當然,以前單個下劃線 _ 也是一個合法的變量命名。但是自 Java 8 的第一個版本開始,單個下劃線的變量名編譯時會有警告int _ = 99;用 Java 8 編譯時提示警告:

原创 Python 的 __str__ 和 __repr__ 方法比較

閱讀到 Strings 中關於轉換對象爲字符串的內容,介紹了 repr 函數,趁着還沒有真正瞭解 Python 面向對象的生疏與熱度,感性上理解一下 repr 與 str 這兩個函數的區別。 Python 的全局方法 repr 和 str

原创 Java 9 線程棧遍歷 API

什麼是線程棧繼續糾纏 Java 9 的新特性,仍然是一個邊角料,即 Java 9 增加了對線程棧遍歷的 API。那麼什麼是線程棧,JVM 在創建每一個線程的同時都會創建一個私有的虛擬機棧,每一楨代表着一個方法調用,每次方法的調用與退出意味

原创 Linux 下配置滾動日誌之 logrotate

日誌是個好東西,便於定位歷史問題,但記錄太多,不滾動,不除舊總暴盤的時候。如果是用日誌框架輸出的日誌,像 Log4j 或 Logback 通過選擇具有滾動特性的 Appender 就能實現日誌的滾動,並刪除舊的歸檔日誌文件。但也有在程序當

原创 開始再戰 Python - 重新入門 - 工具篇

兩年前想摸摸 Python 的門道,簡要記錄了一篇 我的 Python 快速入門,當時只覺得那是一種與 C/Java 異樣風格的編程語言,沒領會到特別之處。如今對 Python 的感受就不一般了,因爲是雲服務,機器學習,人工知道大行其道的

原创 WordPress 在 Linux 下不能向 Gmail 郵箱發郵件的問題

一年前解決了 WordPress 在 Linux 下不能發送郵件的問題,後來有段時間很正常,我的網站接收郵件的郵箱是 Gmail 的。但是近來,網站上有留言時極少收到通知郵件,懷疑是 Debian 下的  exim4 又不能正常工作了。但

原创 如何快樂的使用 Java 8 的 Lambda

Java 8 的 Lambda 特性較之於先前的泛型加入更能鼓舞人心的,我對 Lambda 的理解是它得以讓 Java 以函數式思維的方式來寫代碼。而寫出的代碼是否是函數式,並不單純在包含了多少 Lambda 表達式,而在思維,要神似。