原创 mysql的replace into“坑”

在向表中插入數據的時候,經常遇到這樣的情況:1. 首先判斷數據是否存在; 2. 如果不存在,則插入;3.如果存在,則更新。   這種情況就可以使用replace into語句來解決,但是有沒有問題,且看下去   下面是數據更新前的樣子

原创 Collections.sort(List, Comparator)方法解析

Collections.sort()方法有兩種參數類型,如下: Collections.sort(List<T> list),直接給定需要排序的list,然後按照自然排序進行排序。 Collections.sort(List<T> li

原创 list的iterator大用處

java中list的iterator方法,相信都有用到過,但這裏有個很實用的方式。 由於最近系統增加了導出功能,而且一次性就需要導出大量數據,而查詢出來這些數據之後,會佔用比較大的內存,若是在導出過程中,還需要把這些數據轉換成其他對象,

原创 鎖的進化

java線程是映射到操作系統的原生線程之上的,若是要喚醒或阻塞一個線程,都需要操作系統來幫忙完成,這就需要從用戶態轉換到內核態中,這種轉換需要耗費很多的處理時間,有可能比用戶代碼執行時間都要長。 爲了避免以上情況出現,一般能不用鎖就

原创 數據庫連接數和線程數

前幾天開發一個多線程執行的任務,在多線程執行的時候,一直在報錯,如下: An attempt by a client to checkout a Connection has timed out. com.mchange.v2.res

原创 二進制的移位運算

java的移位運算有三種:左移<<,有符號右移>>,無符號右移>>>   對於左移<<,不管正負數,操作數右邊的低位以0補齊,相當於乘以2的n次方,n爲移動的位數。 比如1<<2,0000 0001位移兩位的話,變爲0000 0100,

原创 Thread和Runnable的區別

Runnable比Thread要多一些優勢,主要是以下兩點 避免點繼承的侷限,一個類可以繼承多個接口。 <!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> 適合於

原创 maven的resources介紹

在開發maven項目時,一般都會把配置文件放到src/main/resources目錄下,針對這個目錄,maven的resources對其進行單獨的配置。   resources配置一般如下: <resources> 

原创 mac python2.7安裝PIL.Image模塊

要想在python中操作圖片,比如引入PIL(Python Imaging Library)庫。   在python安裝第三庫時,可以使用工具easy_install或pip,我推薦使用pip這個工具。針對mac電腦,pip是不需要手動

原创 字符串切分,String和StringUtils的區別

String的split方法可以按照正則表達式把string數據拆分成數組 如下: String test1 = "1,2,3"; System.out.println(test1.split(",").length); 結果爲3 若t

原创 垃圾回收的兩點三共四標

java的垃圾回收主要是來解決兩個問題的: 1、找到內存空間裏的垃圾 2、回收垃圾,讓程序能再次利用這部分空間   這裏插一句解釋什麼是垃圾:就是分配到堆中的那些不能通過程序引用的對象稱爲非活動對象,也即是佔着坑不拉屎的垃圾。   處理

原创 git merge的容易忽略的問題

現在越來越多的使用git來做代碼管理工具,它的確比svn更加強大。 前幾天在使用git合併代碼的時候,發現一個小問題 比如branch1修改文件a.txt中的一處內容,把a=3改爲了a=4 同時branch2也修改了文件a.txt,並且

原创 單例模式和雙重檢查鎖定

相信大家對單例模式應該不陌生,每個人都能寫出好多種單例模式的實現,總結來說就有五種:懶漢、餓漢、靜態內部類、枚舉和雙重檢查鎖定。針對這幾種方式的代碼,可以在網上搜索到,這裏就不再細說。   最近又看了一遍單例的幾種實現方式,發現了一些其

原创 SimpleDateFormat、FastDateFormat和Joda-Time的介紹

衆所周知,SimpleDateFormat是線程不安全的,不能多個線程公用。而FastDateFormat和Joda-Time都是線程安全的,可以放心使用。   SimpleDateFormat是JDK提供的,不需要依賴第三方jar包,

原创 jvm內存很大,cms報錯concurrent mode failure

最近上線一個定時任務:根據條件查詢數據,然後生成excel,當成郵件中的附件發送給指定用戶。在這個定時任務執行的時候,從gc的日誌部分如下: 2016-10-12T15:10:56.017+0800: 2130.042: [GC201