原创 選擇排序、冒泡排序、插入排序、快速排序、希爾排序、歸併排序和堆排序

public class ArraySort { /** * 選擇排序<br/> * <li>在未排序序列中找到最小元素,存放到排序序列的起始位置</li> * <li>再從剩餘未排序元素中繼續尋找

原创 Excel導入導出之easyexcel

目錄 讀取excel文件 小於1000行數據 默認讀取 指定讀取 大於1000行數據 默認讀取 指定讀取 導出excle 單個Sheet導出 無模型映射導出 模型映射導出 多個Sheet導出 工具類 測試類 環境搭建 easyexcel

原创 JAVA導出數據到excel

導出成csv格式 大數據量的導出成csv格式分爲以下幾步: 1.首先引入需要的jar包 一下是我maven的配置方式 1 2 3 4 5 6 7 8 9 10 <dependency>         <groupId>org.mv

原创 Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 7.x

[error] ./client/components/TimeLine/TimeLine.scss Module build failed: Error: Missing binding /usr/local/yapi/vendors

原创 Redisson分佈式鎖實現

概述 分佈式系統有一個著名的理論CAP,指在一個分佈式系統中,最多隻能同時滿足一致性(Consistency)、可用性(Availability)和分區容錯性(Partition tolerance)這三項中的兩項。所以在設計系統時,往往

原创 Spring Cloud 入門教程(六): 用聲明式REST客戶端Feign調用遠端HTTP服務

首先簡單解釋一下什麼是聲明式實現? 要做一件事, 需要知道三個要素,where, what, how。即在哪裏( where)用什麼辦法(how)做什麼(what)。什麼時候做(when)我們納入how的範疇。 1)編程式實現: 每一個要

原创 HashMap實現原理及源碼分析

哈希表(hash table)也叫散列表,是一種非常重要的數據結構,應用場景及其豐富,許多緩存技術(比如memcached)的核心其實就是在內存中維護一張大的哈希表,而HashMap的實現原理也常常出現在各類的面試題中,重要性可見一斑。本

原创 Java併發編程:volatile關鍵字解析

   volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因爲在程序中使用它往往會導致出人意料的結果。在Java 5之後,volatile關鍵字才得以重獲生機。   volatile

原创 Spring Cloud 入門教程(五): Ribbon實現客戶端的負載均衡

接上節,假如我們的Hello world服務的訪問量劇增,用一個服務已經無法承載, 我們可以把Hello World服務做成一個集羣。  很簡單,我們只需要複製Hello world服務,同時將原來的端口8762修改爲8763。然後啓動這

原创 ConcurrentHashMap源碼分析(1.8)

0、說明  ※爲了分析源碼的時候方便調試,把ConcurrentHashMap的源碼放在本地了,名字改爲了ConcurrentHashMapDebug 由於源碼中的unsafe有很多限制,不能直接在本地使用,所以,在源碼的最後面的靜態代碼

原创 ConcurrentHashMap底層實現原理(JDK1.8)源碼分析

ConcurrentHashMap數據結構   ConcurrentHashMap相比HashMap而言,是多線程安全的,其底層數據與HashMap的數據結構相同,數據結構如下:      說明:ConcurrentHashMap的數據結

原创 Java併發之AQS詳解

一、概述   談到併發,不得不談ReentrantLock;而談到ReentrantLock,不得不談AbstractQueuedSynchronizer(AQS)!   類如其名,抽象的隊列式的同步器,AQS定義了一套多線程訪問共享資源

原创 Spring Cloud 入門教程(四): 分佈式環境下自動發現配置服務

前一章, 我們的Hello world應用服務,通過配置服務器Config Server獲取到了我們配置的hello信息“hello world”. 但自己的配置文件中必須配置config server的URL(http://localh

原创 Spring Cloud 入門教程(一): 服務註冊

1.  什麼是Spring Cloud? Spring提供了一系列工具,可以幫助開發人員迅速搭建分佈式系統中的公共組件(比如:配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,主節點選舉, 分佈式session,

原创 JDK源碼之AQS源碼剖析

AbstractQueuedSynchronizer(AQS)是JDK中實現併發編程的核心,平時我們工作中經常用到的ReentrantLock,CountDownLatch等都是基於它來實現的。 AQS類中維護了一個雙向鏈表(FIF