原创 Java9 modules (Jigsaw)模塊化遷移

要點 通過模塊化的方式開發應用程序,實現更好的設計,如關注點分離和封裝性。 通過Java平臺模塊化系統(JPMS),開發者可以定義他們的應用程序模塊,決定其他模塊如何調用他們的模塊,以及他們的模塊如何依賴其他模塊。 對於已經使用

原创 使用Camtasia錄製視頻(MAC版)

1. 選擇new project 2. 在打開的項目界面左上角,點擊紅色圓圈開頭的Record 3. 確保彈出窗口的第一、三、四小窗下面按鈕均爲打開狀態,如下圖,如果有一項未打開可能需要安裝插件 4. 點擊上圖的Start

原创 Java中對象都是分配在堆上嗎?你錯了!

我們在學習使用Java的過程中,一般認爲new出來的對象都是被分配在堆上,但是這個結論不是那麼的絕對,通過對Java對象分配的過程分析,可以知道有兩個地方會導致Java中new出來的對象並不一定分別在所認爲的堆上。這兩個點分別是J

原创 Java9 進程API

1. 概述 Java中的進程API在Java5之前還是非常原始的,開啓一個新進程唯一的方式是調用Runtime.getRuntime().exec() ,直到Java5發佈之後,一些更加簡明的開啓新進程方式被封裝到了Proces

原创 Java9新特性之HTTP2和REPL

對Java 9的炒作將不再侷限於模塊化(modularity),Java 9正在蒐羅大量額外的功能模塊,這些功能模塊正作爲Java增強提案(JEP)提交,並在OpenJDK (Java SE的參考實現項目)中實現。 在這篇文章中,

原创 Java 9 模塊化(Modular)介紹

前言 今年,2017年,我們將迎來 Java 語言的 22 歲生日,22歲,對於一個人而言,正是開始大展鴻圖的年紀,可是對於日新月異的科技圈中的一門開發語言而言,卻是一個傲視羣雄的老態龍鍾的年紀。 JVM 語言發展史 JV

原创 深入分析ConcurrentHashMap的鎖分段技術

術語定義 術語 英文 解釋 哈希算法 hash algorithm 是一種將任意內容的輸入轉換成相同長度輸出的加密方式,其輸出被稱爲哈希值。 哈希表 hash table 根據設定的哈希函數H(key)和處理衝突方法

原创 超詳細的Spring Boot入門筆記

1. Spring Boot 入門 Spring Boot是Spring社區較新的一個項目。該項目的目的是幫助開發者更容易的創建基於Spring的應用程序和服務,讓更多人的人更快的對Spring進行入門體驗,讓Java開發也

原创 ReentrantLock與公平鎖、非公平鎖實現

前言 最近開始讀JDK源碼,所有心得準備總結成一個專欄,JDK Analysis系列的第一篇,就從萬衆矚目的ReentrantLock開始吧,而談到ReentrantLock,就不得不說AQS,它是AbstractQueuedS

原创 http2概述及Java9對其的支持

HTTP/2概述 HTTP/2意在減輕爲維護HTTP/1.1複雜的底層架構而帶來的痛苦,以提高HTTP/1.1的性能。儘管HTTP/2仍然對HTTP/1.1向下兼容,但它已不再是一個基於文本的協議。當客戶端通過HTTP/1.1請求

原创 Java9 集合工廠方法

使集合框架更便捷的工廠方法 JEP269中提議,爲集合框架增添一些工廠方法,來使創建不可變集合類與含有少量元素的Map變得更加便捷。下文就爲什麼它們應運而生來展開詳細的闡述。 集合框架增加工廠方法是必然的結果 Java飽受其語法臃

原创 Java 9 : 從零開始實現模塊化(一)

Well, Java 9 is available so let’s make modules! 模塊化在Java9中是炒雞炒雞重要的!今後,模塊將是應用程序的基礎構建單位。無論是使用動態語言或靜態語言編寫,模塊都是應用程序的一

原创 Java9 HTTP2.0 API入門與實踐

簡述 如果您需要使用Java語言來請求HTTP資源,那麼你可能會遇到多種解決方案,你最終可能會以一種合理的方式來達成這個目的 —– 引用第三方包。 好消息,好消息,黃鶴帶着小姨子回來了,皮革廠有救了:Java9除了有模塊化特性之外

原创 新書推薦 | 深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)

Java自上世紀90年代問世以來,以其優良的特性,逐漸佔據了企業級開發的主流位置,並且日益強大的語言生態,更加鞏固了它在編程語言排行榜上的地位。 Java的快速發展,得益於支撐它運行的底層平臺:JVM,這個由C++編寫的虛擬機,

原创 Element UI 自定義正則表達式驗證

//指定數據中心的驗證表單valiForm,驗證規則rules <el-form :model="valiForm" :rules="rules" ref="valiForm" label-width="100px" class=