原创 常用的排序算法實現(2)-堆排序

堆排序相對來說比較複雜。這裏使用了兩種是實現方案,方案1,heapSort1()需要藉助於二叉堆類,這個算是一個入門;有助於理解堆排序。 方案2,heapSort2()將數組看成是一棵二叉樹,首先要對樹轉換,使其變成大頂堆。然後再進行排

原创 Java併發編程學習-日記7、第二個netty程序回顯服務器

代碼示例: public class NettyEchoServer {     private final int serverPort;     ServerBootstrap b = new ServerBootstrap();

原创 Java併發編程學習-日記6、Netty基礎知識點

Netty的服務啓動類ServerBootstrap:Bootstrap類是Netty提供的一個便利的工廠類,可以通過它來完成Netty的客戶端或服務器端的Netty組件的組裝,以及Netty程序的初始化。它的職責是一個組裝和集成器,將不

原创 常用的排序算法實現(1)-選擇排序、插入排序、希爾排序、歸併排序、快速排序

package sort; import java.util.Arrays; /** * 描述: * 排序算法 * * @author wanghui email:[email protected] * @creat

原创 SPRING實戰(3)、超媒體與Spring HATEOAS之一

超媒體作爲應用狀態引擎(Hypermedia as the Engine of Application State,HATEOAS)是一種創建自描述API的方式。API所返回的資源中會包含相關資源的鏈接,客戶端只需要瞭解最少的API UR

原创 Java併發編程學習-日記9、JSON 與 Protobuf

1、JSON: Jackson開源庫的優點是:所依賴的jar包較少、簡單易用、性能也還不錯,另外Jackson社區相對比較活躍。 Jackson開源庫的缺點是:對於複雜POJO類型、複雜的集合Map、List的轉換結果,不是標準的JSON

原创 SPRING實戰(2)、Spring基礎之配置

在Spring的XML方式和基於Java的配置中,這兩種類型的配置通常會在同一個地方顯示聲明。在基於Java的配置中,帶有@Bean註解的方法一會同事初始化話bean並立即爲它的屬性設置值。Spring的環境抽象是各種配置屬性的一站式服務

原创 Linux學習-1、系統目錄結構

目錄的解釋: /bin: bin是Binary的縮寫, 這個目錄存放着最經常使用的命令。 /boot: 這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。 /dev : dev是Device(

原创 SPRING實戰(1)、Spring基礎

Spring的核心是提供了一個 容器(container),通常稱爲Spring應用上下文(Spring application context),它們會創建和管理應用組件。將bean裝配在一起的行爲是通過一種基於 依賴注入(depend

原创 Java併發編程學習-日記12、Redis 和 Java

Redis的配置項清單如下: (1)port:端口配置項,查看和設置Redis監聽端口,默認端口爲6379。 (2)bind:主機地址配置項,查看和綁定的主機地址,默認地址的值爲127.0.0.1。 (3)timeout:連接空閒多長要關

原创 Java併發編程學習-日記11、ZooKeeper實現分佈式命名服務器

命名服務是爲系統中的資源提供標識能力。ZooKeeper的命名服務主要是利用ZooKeeper節點的樹形分層結構和子節點的順序維護能力,來爲分佈式系統中的資源命名。 分佈式命名服務器應用場景: 分佈式API目錄:爲分佈式系統中各種API

原创 Java併發編程學習-日記8、netty的編碼和解碼

Netty解碼器 ByteToMessageDecoder 一個標準的解碼器將輸入類型爲ByteBuf緩衝區的數據進行解碼,輸出一個一個的Java POJO對象。Netty內置了這個解碼器,叫作ByteToMessageDecoder,位

原创 Java併發編程學習-日記10、ZooKeeper

連接假死 什麼是連接假死呢? 如果底層的TCP連接已經斷開,但是服務器端並沒有正常地關閉套接字,服務器端認爲這條TCP連接仍然是存在。 連接假死的具體表現如下: (1)在服務器端,會有一些處於TCP_ESTABLISHED狀態的“正

原创 Java併發編程學習-日記5、Netty從DiscardServer實踐開始

DiscardServer所示,創建netty服務端,一共有8步,重點在:監控事件的線程組、通道及通道參數、出入站的處理器(綁定在流水線上)、異步監控事件處理 public class NettyDiscardServer {    

原创 Java併發編程學習-日記1、常見的IO模型、NIO、OIO

常見的IO模型: 1、同步阻塞IO(Blocking IO): 在Java中,默認創建的socket都是阻塞。同步IO,是一種用戶空間與內核空間的IO發起方式。同步IO是指用戶空間的線程是主動發起IO請求的一方,內核空間是被動接受方。異步