原创 數據結構與算法之空間複雜度

算法的空間複雜度 類似於時間複雜度的討論,一個算法的空間複雜度(Space Complexity)定義爲該算法所耗費的存儲空間,它也是問題規模n的函數。 空間複雜度(Space Complexity)是對一個算法在運行過程

原创 數據結構與算法之八皇后問題

八皇后問題 八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即:任意兩個皇后都不能處於同一行、同一列或同一斜線

原创 數據結構與算法之迷宮回溯

什麼是回溯? 回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原

原创 數據結構與算法之時間複雜度

算法的時間複雜度 一般情況下,算法中的基本操作語句的重複執行次數是問題規模n的某個函數,用T(n)表示,若有某個輔助函數f(n),使得當n趨近於無窮大時,T(n) / f(n) 的極限值爲不等於零的常數,則稱f(n)是T(n)的

原创 Java8實戰之Lambda表達式

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

原创 Java8實戰之新時間日期API

簡介 Java 8通過發佈新的Date-Time API (JSR 310)來進一步加強對日期與時間的處理。 在舊版的 Java 中,日期時間 API 存在諸多問題,其中有: 非線程安全: java.util.Date 是非線程安

原创 Java8實戰之接口默認方法與靜態方法

簡介 Java 8中允許接口中包含具有具體實現的方法,該方法稱爲“默認方法”,默認方法使用default關鍵字修飾 示例 接口中的 默認方法: public interface TestInterface { defau

原创 Java8實戰之函數式接口

簡介 只包含一個抽象方法的接口,稱爲函數式接口; 通過Lambda 表達式來創建該接口的對象(若Lambda 表達式拋出一個受檢異常,那麼該異常需要在目標接口的抽象方法上進行聲明); 我們可以在任意函數式接口上使用@Functio

原创 Java8實戰之方法引用與構造器引用

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

原创 Java8實戰之Optional容器類

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

原创 數據結構與算法之遞歸

簡介 遞歸就是方法自己調用自己,每次調用時傳入不同的參數,遞歸有助於解決複雜的問題,同時也能使代碼變得簡潔。 遞歸調用機制 有編程的基礎的同學,應該知道遞歸的寫法,下面我將使用兩個小案例來分析遞歸的調用機制。 案例一 遞歸打印數字

原创 Java8實戰之Stream流式操作

簡介 Java8中有兩大最爲重要的改變。第一個是Lambda 表達式;另外一個則是Stream API(java.util.stream.*)。 Stream 是Java8 中處理集合的關鍵抽象概念,它可以指定你希望對集合進行的操

原创 Java8實戰之新特性概述

簡介 Java 8 是 Oracle 公司於 2014 年發佈新的Java版本,是自Java 5(2004年)發佈以來Java語言最大的一次版本升級,Java 8帶來了很多的新特性,比如它支持函數式編程,新的日期 API,新的St

原创 SpringBoot打成jar包後無法獲取Resources文件

在前幾天項目開發過程中,因爲業務需要,自己定義了一個xml文件放到了resources文件夾下,通過Spring的ResourceUtils來獲取文件,代碼如下: File testFile = ResourceUtils.get

原创 SpringCloud構建微服務之Zuul服務網關

前言 在前面的文章我們講解了,Eureka服務註冊與發現,Ribbon負載均衡,Feign的聲明式服務調用,用戶服務保護的Hystrix,配置中心SpringCloudConfig,似乎一個完整的微服務架構已經搭建完成了。 不知道