原创 Java 8新特性探究(五)重複註解(repeating annotations)

知識回顧 前面介紹了: lambda表達式和默認方法 (JEP 126) 批量數據操作(JEP 107) 類型註解(JEP 104) 注:JEP=JDK Enhancement-Proposal (JDK 增強建議 ),

原创 博客開張篇

時間過得真快,做程序員已經4年了。但在這4年裏還沒有真正的去寫過博客,說來也慚愧。自己也曾有過寫博客的想法,但都沒堅持下去,所以今天寫這篇博客一是希望通過寫博客能將自己的技能提升,二是爲了督促自己以後經常寫博客。 4年時間說長也長,說短也

原创 Java 8新特性探究(二)深入解析默認方法

上篇講了 lambda表達式的語法,但只是 JEP126 特性的一部分,另一部分就是默認方法(也稱爲虛擬擴展方法或防護方法) 。 什麼是默認方法,爲什麼要有默認方法 簡單說,就是接口可以有實現方法,而且不需要實現類去實現其方法。只

原创 Java Reflection(七):私有變量和私有方法

在通常的觀點中從對象的外部訪問私有變量以及方法是不允許的,但是Java反射機制可以做到這一點。使用這個功能並不困難,在進行單元測試時這個功能非常有效。本節會向你展示如何使用這個功能。 注意:這個功能只有在代碼運行在單機Java應用(sta

原创 Java Reflection(八):註解

利用Java反射機制可以在運行期獲取Java類的註解信息。 什麼是註解 註解是Java 5的一個新特性。註解是插入你代碼中的一種註釋或者說是一種元數據(meta data)。這些註解信息可以在編譯期使用預編譯工具進行處理(pre-comp

原创 NodeJs服務器管理

服務器管理是系統上線後需要面對的問題。最好有一個軟件可以提供整套的服務器運行解決方案:要求運行穩定,啓動/停止命令簡單,支持熱部署,宕機重啓,監控日誌,集羣環境等。NodeJs服務器管理模塊有forever、pm2等。 forever是一

原创 Java Reflection(九):泛型

我常常在一些文章以及論壇中讀到說Java泛型信息在編譯期被擦除(erased)所以你無法在運行期獲得有關泛型的信息。其實這種說法並不完全正確的,在一些情況下是可以在運行期獲取到泛型的信息。這些情況其實覆蓋了一些我們需要泛型信息的需求。在本

原创 Java 8新特性探究(十)StampedLock將是解決同步問題的新寵

Java8就像一個寶藏,一個小的API改進,也足與寫一篇文章,比如同步,一直是多線程併發編程的一個老話題,相信沒有人喜歡同步的代碼,這會降低應用的吞吐量等性能指標,最壞的時候會掛起死機,但是即使這樣你也沒得選擇,因爲要保證信息的正確性。所

原创 Java Reflection(六):Getters and Setters

使用Java反射你可以在運行期檢查一個方法的信息以及在運行期調用這個方法,使用這個功能同樣可以獲取指定類的getters和setters,你不能直接尋找getters和setters,你需要檢查一個類所有的方法來判斷哪個方法是getter

原创 Java 8新特性探究(十一)Base64詳解

BASE64 編碼是一種常用的字符編碼,在很多地方都會用到。但base64不是安全領域下的加密解密算法。能起到安全作用的效果很差,而且很容易破解,他核心作用應該是傳輸數據的正確性,有些網關或系統只能使用ASCII字符。Base64就是用來

原创 Java Reflection(十一):動態代理

利用Java反射機制你可以在運行期動態的創建接口的實現。java.lang.reflect.Proxy類就可以實現這一功能。這個類的名字(譯者注:Proxy意思爲代理)就是爲什麼把動態接口實現叫做動態代理。動態的代理的用途十分廣泛,比如數

原创 Java Reflection(十二):動態類加載與重載

Java允許你在運行期動態加載和重載類,但是這個功能並沒有像人們希望的那麼簡單直接。這篇文章將闡述在Java中如何加載以及重載類。 你可能會質疑爲什麼Java動態類加載特性是Java反射機制的一部分而不是Java核心平臺的一部分。不管怎

原创 Java Reflection(一):Java反射指南

Java反射機制可以讓我們在編譯期(Compile Time)之外的運行期(Runtime)檢查類,接口,變量以及方法的信息。反射還可以讓我們在運行期實例化對象,調用方法,通過調用get/set方法獲取變量的值。 Java反射機制功能強大

原创 Java Reflection(四):方法

使用Java反射你可以在運行期檢查一個方法的信息以及在運行期調用這個方法,通過使用java.lang.reflect.Method類就可以實現上述功能。在本節會帶你深入瞭解Method對象的信息。 獲取Method對象 可以通過Class

原创 Java Reflection(五):變量

使用Java反射機制你可以運行期檢查一個類的變量信息(成員變量)或者獲取或者設置變量的值。通過使用java.lang.reflect.Field類就可以實現上述功能。在本節會帶你深入瞭解Field對象的信息。 獲取Field對象 可以通過