原创 jdk8的新特性總結(一):lambda表達式

jdk8的lambda表達式和StreamAPI能夠簡化以前我們需要重複編寫的代碼,以前一直都是用jdk6,最近一個新項目開始使用jdk8,經過一段時間的使用,着實感受到了jdk8的強大便捷,本文對jdk8的新特性做了一個總結,希望可以幫

原创 一種配置化的數據權限實現方案

數據權限控制是幾乎每一個業務系統都要實現的一個功能,很多業務系統採用硬編碼的方式將數據權限控制邏輯寫入業務代碼中,這種實現方式讓我們的業務代碼中充斥着大量的與業務無關的重複代碼,並且數據權限有變化需求就必須 修改代碼->測試->發佈,增加

原创 JDK動態代理與CGLIB動態代理

JDK動態代理和CGLIB動態代理是SpringAOP非常重要的兩個概念,SpringAOP是通過生成目標對象的代理類來實現對目標對象的增強,在說JDK的動態代理之前我們先來回顧一下靜態代理: 一、靜態代理: 首先定義一個業務接口 pu

原创 JAVA類實例化時,子類和父類中的構造方法,靜態代碼塊,代碼塊和普通方法的調用順序

通過這篇文章總結一下JAVA類實例化時,子類和父類中的構造方法,靜態代碼塊,代碼塊和普通方法的調用順序,首先編寫兩個測試類: 父類: public class Father { { System.out.prin

原创 Java 泛型 ? super T 中 super 怎麼 理解與 ? extends T 有何不同?

首先說一下java泛型吧,泛型是Java SE 1.5的新特性,用來在編譯時做類型檢查的,並且會根據泛型類型自動進行類型轉換,也就是說,泛型只在編譯期起作用,主要是用來保證類型安全的,編譯後的class文件中是不會包含泛型的,這個大家可以

原创 HashMap源碼分析(基於JDK1.8)

看到網上對HashMap源碼分析的文章很多,大部分概念都是對的,但是沒有讓人理解哈希表的本質,今天畫了一些時間認真的看了一遍HashMap的源碼,所以想寫下這篇文章總結一下。 先來一張HashMap的底層數據結構圖: 這張圖大家是很熟悉

原创 安裝dubbo的監控中心dubbo-admin

在dubbo2.6版本之前,都是使用war包的形式,將打好的war包放到tomcat中啓動,在2.6版本之後,dubbo-admin工程已經集成了springBoot,可以將工程打成一個可執行的jar文件,直接運行訪問,方便了很多。  d

原创 一篇文章徹底弄明白java中的二進制運算

在java中的二進制運算符有:<<(左移保留符號位), >>(右移保留符號位), >>>(右移,符號位也一起移動), ~(按位取反), ^(異或,相同爲0,不同爲1), &(邏輯與) ,|(邏輯或),下面我們就來一個一個解釋一下。 在說二

原创 JS中RHS引用和LHS引用的區別

平時做前端開發的時候可能接觸不到LHS和RHS這兩個名詞,但是它卻是js中最基礎的概念,表示兩種變量的查找方式,在js代碼中無處不在。我們來舉個例子說明一下LHS和RHS。 var a = 1;  我們把這個表達式根據等號拆成兩個部分,v

原创 jdk8的新特性總結(三):串行流與並行流

在上一篇文章中我們知道通過parallelStream方法可以獲得一個並行流,那麼什麼是並行流呢?並行流就是把內容分割成多個數據塊,每個數據塊對應一個流,然後用多個線程分別處理每個數據塊中的流。 java8中將並行進行了優化,我們可以很容

原创 js中的eval和with

js中有兩個方法可以改變詞法作用域,eval(...)和with(...)。前者可以接受一段字符串代碼來進行演算,並藉此來修改已存在的詞法作用域,後者本質上是通過將一個對象的引用當作詞法作用域,將對象的屬性當作作用域中的標識符來處理,從而

原创 函數表達式()()和函數聲明function的區別

()()表示立即執行一個函數表達式,拆分來看第一個括號裏的是一個函數聲明,第二個括號表示立即執行這個表達式,下面我們來理解一下什麼是函數表達式和函數聲明。 區分函數表達式和函數聲明的區別在於function的位置,如果function不是

原创 jdk8的新特性總結(二):StreamAPI

這篇文章我們一起來學習java8最重要的新特性之一,強大的StreamAPI,在本文中的代碼示例中我們會大量使用lambda表達式,如果對lambda表達式還不太熟悉,可以看一下上一篇文章。 java8中Java8中有兩大最爲重要的改變。

原创 SpringMVC用到的功能總結

1、@RequestMapping:     params:指定請求參數,例:params={"param1=value1","param2"}表示請求中必須包含param1和param2,且param1必須  等於value1;   

原创 jdk8的新特性總結之lambda表達式

jdk8的lambda表達式和StreamAPI能夠簡化以前我們需要重複編寫的代碼,以前一直都是用jdk6,最近一個新項目開始使用jdk8,經過一段時間的使用,着實感受到了jdk8的強大便捷,本文對jdk8的新特性做了一個總結,希望可以幫