原创 Java中Lambda表達式使用

Lambda表達式,(布蘭達)λ表達式,也可稱爲閉包。 java8發佈的最重要的新特性。 Lambda允許把函數作爲一個方法的參數(函數作爲參數傳遞進方法中)。 Lambda表達式使用: // 不需要參數 () -> 5 //

原创 ConcurrentHashMap底層結構(JDK1.7)

HashMap不是線程安全的,HashTable雖然是線程安全,但是該類所有的方法都用synchronized進行線程安全的控制,在高併發的情況下,同一時刻只有一個線程可以獲取對象監視器,其他線程阻塞或者輪詢等待,在線程競爭激烈的情況下,

原创 linux下重啓進程

步驟1:先查找進程的執行語句並保留它,這個目的是保留進程的執行參數不變; 例如要重啓mogodb的進程: # ps -ef | grep mogodb 獲得: root 2928 2903 0 14:51 pts/0 00:00:00 g

原创 ConcurrentHashMap底層數據結構(JDK1.8)

ConcurrentHashMap在JDK1.7中存在的問題: 在JDK1.7中以及解決了併發問題,可以支持N個Segment的併發,但是查詢遍歷鏈表時效率太低 jdk1.7下數據結構 在JDK1.8中底層數據結構調整如下: 這看起來是

原创 Spring Cloud Feign進行微服務間調用

在Spring Cloud Netfilx棧中,各個微服務都是以Http接口的形式暴露自身服務的,因此在調用遠程服務的時候就必須使用Http客戶端。我們可以使用JDK原生的URLConnection、Apache的Http Client

原创 IDEA Smart Checkout和Force Checkout區別

IDEA當在一個分支上修改了內容沒有提交,然後切換到其他分支時,可能會發生衝突。 這時IDEA會彈出提示,問你要選擇Smart Checkout還是Force Checkout: 如果想保留你在原分支上的修改內容,那麼選擇Smart Ch

原创 HashMap原理筆記(JDK1.7)

HashMap是一個用於存儲Key-Value鍵值對的集合,每一個鍵值對也叫做Entry。這些個鍵值對(Entry)分散存儲在一個數組當中,這個數組就是HashMap的主幹。 HashMap數組每一個元素的初始值都是Null。 Hash

原创 MyBatis在xml文件中處理小於號和單引號

天天忘記,做個記錄。 XML轉義字符: &lt;  <  小於號  &apos; ' 單引號 &amp; & 和

原创 Spring Cloud Ribbon重試機制配置

首先聲明一點,這裏的重試不是報錯以後的重試,而是負載均衡客戶端發現遠程請求實例不可達之後,去重試其他實例。   Ribbon是一個基於HTTP和TCP的客戶端負載均衡工具。 Feign基於Ribbon做了封裝,注意:spring-clou

原创 Redis使用管道PipeLine

Pipline Pipline指的是管道技術,指的是客戶端允許將多個請求依次發給服務器,過程中而不需要等待請求的回覆,在最後再一併讀取結果即可,Redis很早就支持管道(Pipline)技術。(因此無論你運行的是什麼版本,你都可以使用管道

原创 寫代碼的優雅方式-使用Lombok插件

Lombok 作用:幫使用者提高編碼效率,減少重複與冗餘的代碼 原理:ASM 動態修改class文件   參考文章:跳轉

原创 jps命令查看Java進程

jps是jdk提供的一個查看當前java進程的小工具,簡單實用,通過這個命令可以查看當前系統所有運行中的java進程、java包名、jar包名及JVM參數等。 命令格式:jps [options ] [ hostid ] [opt

原创 MySql中IGNORE、ON DUPLICATE KEY UPDATE、DELAYED

mysql插入語句中,如果指定了IGNORE,則對於有重複關鍵字的行,只使用第一行,其它有衝突的行被刪除。 示例: insert ignore into tb(...) value(...) 這樣不用校驗是否存在了,有則忽略,無則添加。

原创 java.lang.ArithmeticException異常解決

今天在使用兩個BigDecimal類型的數字做除法運算時,出現了一個如下的異常信息: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact

原创 Java進程的dump文件生成與分析

當程序運行出現問題時,我們可以通過Java自帶的工具生成java進程的dump文件進行堆棧分析。 使用java自帶的工具jmap可以監控內存狀態,生成dump日誌等; 生成dump文件 1,首先需要獲取linux進程的pid,比如3614