原创 信號量:Semaphore

Semaphore Semaphore就是一個信號量,它的作用是限制某段代碼塊的併發數。 Semaphore有一個構造函數,可以傳入一個int型整數n,表示某段代碼最多隻有n個線程可以訪問, 如果超出了n,那麼請等待,等到某個線程執行完畢

原创 二、JDK1.8—Lambda表達式

Lambda表達式基礎語法 /* * 一、Lambda 表達式的基礎語法:Java8中引入了一個新的操作符 "->" * 該操作符稱爲箭頭操作符或 Lambda 操作符,箭頭操作符將 Lambda 表達式拆分成兩部分: *

原创 (八)SpringBoot-Docker

簡介 Docker是一個開源的應用容器引擎;是一個輕量級容器技術; Docker支持將軟件編譯成一個鏡像;然後在鏡像中各種軟件做好配置,將鏡像發佈出去,其他使用者可以直接使 用這個鏡像; 運行中的這個鏡像稱爲容器,容器啓動是非常快速的。

原创 十三、NIO

Java NIO 簡介 Java NIO(New IO)是從Java 1.4版本開始引入的 一個新的IO API,可以替代標準的Java IO API。 NIO與原來的IO有同樣的作用和目的,但是使用 的方式完全不同,NIO支持面向緩衝區

原创 十二、BIO/NIO/AIO

BIO BIO 就是傳統的 java.io 包,它是基於流模型實現的,交互的方式是同步、阻塞方式,也就是說在讀入輸入流或者輸出流時,在讀寫動作完成之前,線程會一直阻塞在那裏,它們之間的調用時可靠的線性順序。它的有點就是代碼比較簡單、直觀;

原创 五、JKD1.8—Lambda表達式和Stream API的簡介

Lambda 簡介: Lambda 是一個匿名函數,我們可以把 Lambda 表達式理解爲是一段可以傳遞的代碼(將代碼像數據一樣進行傳遞)。可以寫出更簡潔、更靈活的代碼。作爲一種更緊湊的代碼風格,使Java的語言表達能力得到了提升。 p

原创 四、JDK1.8—方法引用與構造器引用

方法引用       當要傳遞給Lambda體的操作,已經有實現的方法了,可以使用方法引用!(實現抽象方法的參數列表,必須與方法引用方法的參數列表保持一致!)方法引用:使用操作符 “::” 將方法名和對象或類的名字分隔開來 可以將方法引用

原创 (五)SpringBoot註解的意思

@ConfigurationProperties ; @Component ;  @Value ; @Validated /** * @ConfigurationProperties: 告訴SpringBoot

原创 九、JDK1.8—並行流與串行流

並行流 並行流就是把一個內容分成多個數據塊,並用不同的線程分 別處理每個數據塊的流。 Java 8 中將並行進行了優化,我們可以很容易的對數據進行並 行操作。Stream API 可以聲明性地通過 parallel() 與 sequent

原创 八、JDK1.8—新時間日期 API(java.time包)

新時間日期 API(java.time包) 使用 LocalDate、LocalTime、LocalDateTime(人讀的時間)  LocalDate、LocalTime、LocalDateTime 類的實 例是不可變的對象,是線程

原创 十、JDK1.8—HashMap以及JVM的優化

JDK1.8以前的HashMap        原來的hashMap採用的數據結構是哈希表(數組+鏈表),hashMap底層是Entry類型的,名字叫做table的數組,當new一個hsahMap的時候會構造一個容量爲16,負載因子爲0.

原创 (六)SpringBoot對springMvc的擴展

Spring Boot自動配置類 如何實現Spring MVC功能的擴展 ①編寫一個配置類@Configuration ②是WebMvcConfigurerAdapter類型,不能標註@EnableWebMvc (既保留了所有

原创 (七)SpringBoot嵌入式Servlet

SpringBoot默認使用的是嵌入式的Servlet如:嵌入式的tomcat 也可以使用外部的Servlet容器 如Tomcat,嵌入式的Tomcat默認不支持jsp  定製修改嵌入式的tomcat配置(如:修改內置Tomcat的端口

原创 六、JDK1.8—Stream API

Stream Stream 是 Java8 中處理集合的關鍵抽象概念,它可以指定你希望對集合進行的操作,可以執行非常複雜的查找、過濾和映射數據等操作。使用Stream API 對集合數據進行操作,就類似於使用 SQL 執行的數據庫查詢。也

原创 七、JDK1.8—Optional類

Optional<T> 類(java.util.Optional) 是一個容器類,代表一個值存在或不存在,原來用 null 表示一個值不存在,現在 Optional 可以更好的表達這個概念。並且可以避免空指針異常  /* * 一、Op