原创 Java高效讀取大文件

  讀取文件行的標準方式是在內存中讀取,Guava 和Apache Commons IO都提供瞭如下所示快速讀取文件行的方法:   Files.readLines(new File(path), Charsets.UTF_8);   F

原创 Java開發熟手該當心的11個錯誤

#1、不在屬性文件或XML文件中外化配置屬性。比如,沒有把批處理使用的線程數設置成可在屬性文件中配置。你的批處理程序無論在DEV環境中,還是UAT(用戶驗收測試)環境中,都可以順暢無阻地運行,但是一旦部署在PROD 上,把它作爲多線程

原创 程序猿爲什麼老是活得比狗還累?

一年多,我仗著自己年輕的身體,對電腦的熱情,在工作上多使用蠻力,彷彿一個使用樸素演算法實現的程式,吭赤吭赤跑個不停。一開始,樸素演算法還能在指定的工作時間內完成任務;後來任務越來越多,工作時間之內肯定沒法完成,我開始竊取時間,以更長的時

原创 兩個容易被忽略的MySQL知識

1、varchar(5)可以存儲多少個漢字,多少個字母數字?   相信有好多人應該跟我一樣,對這個已經很熟悉了,根據經驗我們能很快的做出決定,比如說用varchar(200)去存儲url等等,但是,即使你用了很多次也很熟悉了,也有可能對

原创 MYSQL的慢查詢兩個方法

  對於排查問題找出性能瓶頸來說,最容易發現並解決的問題就是MYSQL的慢查詢以及沒有得用索引的查詢。   =========================================================   方法一:

原创 關於Android Log的一些思考

在日常的Android開發中,日誌打印是一項必不可少的操作,我們通過分析打印的日誌可以分析程序的運行數據和情況。然而使用日誌打印的正確姿勢又是怎樣呢,如何屏蔽日誌信息輸出呢,本文將逐一進行回答。 哪些形式 System.out.prin

原创 項目經理叫你改Bug,後來就發生了……

你曾經碰到過現在這種情況: 你的代碼非常優雅。 你代碼中的抽象剛剛好,不多不少。 你的模塊都各自獨立。 所有的測試結果都是綠色的。代碼測試覆蓋率報告花了整整一分鐘纔打開,上面顯示着 97%…… 生活很美好。 然後事情就這

原创 Java進行RSA加解密的例子

加密是保證數據安全的手段之一。加密是將純文本數據轉換爲難以理解的密文;解密是將密文轉換回純文本。   數據的加解密屬於密碼學的範疇。通常,加密和解密都需要使用一些祕密信息,這些祕密信息叫做密鑰,將純文本轉爲密文或者轉回的時候都要用到這些

原创 Java開發者寫SQL時常犯的10個錯誤

1、不用PreparedStatements   有意思的是,在JDBC出現了許多年後的今天,這個錯誤依然出現在博客、論壇和郵件列表中,即便要記住和理解它是一件很簡單的事。開發者不使用PreparedStatements的原因可能有如下

原创 我已經寫了48年代碼了,我感覺我還能寫下去

這是來自quroa的問題:Why-aren't-there-a-lot-of-old-programmers-at-software-companies下的一個回答。   很多人會疑問是不是程序員最後只能轉管理,是不是到了中年之後就應該

原创 MySQL雙向複製

本文包括: 主機配置 從機配置 建立主-從複製 建立雙向複製   背景 按照以下簡單的步驟: 參考一下: 在機器A配置主機(192.168.1.30) 在機器B配置從機(192.168.1.29) 我們可以使用

原创 關於java堆內存溢出的幾種情況

【情況一】:   java.lang.OutOfMemoryError: Java heap space:這種是java堆內存不夠,一個原因是真不夠,另一個原因是程序中有死循環;   如果是java堆內存不夠的話,可以通過調整JVM下面

原创 大話程序猿眼裏的高併發

高併發是指在同一個時間點,有很多用戶同時的訪問URL地址,比如:淘寶的雙11,雙12,就會產生高併發,如貼吧的爆吧,就是惡意的高併發請求,也就是DDOS攻擊,再屌絲點的說法就像玩擼啊擼被ADC暴擊了一樣,那傷害你懂得(如果你看懂了,這個

原创 Java線程中yield與join方法的區別

長期以來,多線程問題頗爲受到面試官的青睞。雖然我個人認爲我們當中很少有人能真正獲得機會開發複雜的多線程應用(在過去的七年中,我得到了一個機會),但是理解多線程對增加你的信心很有用。之前,我討論了一個wait()和sleep()方法區別的

原创 Java程序員一定知道的優秀第三方庫

幾乎每個程序員都知道要“避免重複發明輪子”的道理——儘可能使用那些優秀的第三方框架或庫,但當真正進入開發時,我卻經常發現他們有時並不知道那些輪子在哪裏。最近,我在業餘時間帶幾個年輕的程序員一起做了一個很小的商業項目,而在一起開發的過程中