原创 怎樣快速拿到list中的最小值

本文使用jdk1.8中的流式算法,代碼簡潔,比之前for效率提高了不少,代碼如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util

原创 什麼是AQS ?

AQS( AbstractQueuedSynchronizer 類 ) 是 一 個 用 來 構 建 鎖 和 同 步 器 的 框 架 , 各 種  Lock  包 中 的 鎖 ( 常 用 的 有  ReentrantLock、 ReadWr

原创 java數據訪問層核心代碼封裝

封裝代碼如下, package com.mischen.pay.common.core.dao.impl; import java.util.Date; import java.util.HashMap; import java.u

原创 什麼是泛型以及泛型的作用?

泛型是java 1.5之後推出來的新特性,他的出現是爲解決對象向下轉型所帶來的一些安全隱患。其本質思想是:類的屬性或者方法的參數都是可以由用戶在使用的時候動態設置的,簡單歸納來,泛型其實就是在定義類、接口、方法的時候不侷限地指定某一種特定

原创 https請求核心代碼實現,包括證書認證

直接上代碼,如下: package com.mischen.pay.common.core.utils.httpclient; import org.apache.commons.io.output.ByteArrayOutputS

原创 java1.8使用stream流快速拿到集合中的最大值或者最小值或者某個對象的案例分析

直接上代碼,截圖如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util.List; /** * @author:mischen

原创 zookeeper實現分佈式鎖的原理?

1.客戶端對某個方法加鎖時,在 zk 上的與該方法對應的指定節點的目錄下,生成一個唯一 的瞬時有序節點 node1; 2.客戶端獲取該路徑下所有已經創建的子節點,如果發現自己創建的 node1 的序號是最小 的,就認爲這個客戶端獲得

原创 線程池創建的具體流程分析(面試重點)

 線 程 池 默 認 初 始 化 後 不 啓 動  Worker, 等 待 有 請 求 時 才 啓 動 。 每 當 我 們 調 用  execute()  方 法 添 加 一 個 任 務 時 , 線 程 池 會 做 如 下 判 斷 :  

原创 java中爲什麼要定義枚舉?以及定義枚舉的好處?枚舉代碼示例/* * ================================================================

枚舉的本質實際上是一種多例模式,枚舉中可以定義各種類型,在開發中使用枚舉主要是考慮到線程安全,代碼如下: package com.mischen.pay.common.core.enums; import java.util.Arra

原创 java中什麼是自動裝箱與拆箱

自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比 如:把 int 轉化成 Integer,double 轉化成 Double,等等。反之就是自動拆箱。 原始類型: boolean,char,byte,

原创 java日期工具類代碼示例

適用於各種日期函數方法,直接上代碼,大家對號入座: package com.roncoo.pay.common.core.utils; import java.sql.Timestamp; import java.text.Pars

原创 什麼是AIO,BIO,NIO?

原创 什麼是https?http與https的區別?

HTTPS 和 HTTP 的區別主要如下: 1)https 協議需要到 ca 申請證書,一般免費證書較少,因而需要一定費用。 2)http 是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的 ssl 加密傳輸協議。 3

原创 java中的安全加密

11.1 數字簽名 2.驗證過程發送者:將報文通過 hash 算法生成摘要,用私鑰加密生成簽名。 接收者:使用公鑰解密數字簽名,得到摘要 A,再對報文進行 Hash 算法得到摘 要 B,比較 A 和 B,一致則表示沒有被修改。 1

原创 利用Collections.sort給對象排序,查找對象裏面自己想要的值(核心代碼邏輯實現)

直接上代碼,根據我多年的工作經驗,下面這段代碼經過改編,有可能會經常用到,如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util.