原创 Netty學習之路(三)-AIO編程

NIO 2.0引入了新的異步通道的概念,與之前非阻塞IO(NIO)不同的是,NIO 2.0異步套接字通道是真正的異步非阻塞I/O,對應於UNIX網絡編程中的事件驅動I/O(AIO)。它不需要通過多路複用器對註冊的通道進行輪詢操作即

原创 Netty學習之路(六)-分隔符和定長解碼器的應用

之前已經使用了LineBasedFrameDecoder解決TCP粘包問題,現在再學兩種解決TCP粘包的方法。 DelimiterBasedFrameDecoder:可以自動完成以分隔符做結束標誌的消息的解碼,分隔符自定義。 F

原创 Netty學習之路(一)- 同步與異步IO

本篇博客主要是講一些基礎,記錄我的學習過程,同時嘗試養成寫博客的習慣。內容基本來自Netty權威指南。。。。 I/O基礎入門 在jdk1.4以前,java對i/o的支持並不完善,開發人員在開發高性能i/o時會遇到巨大的挑戰與困難,

原创 Android從入門到精通-Fragment的創建及使用

寫的不能比這個好了。。。所以直接貼鏈接吧

原创 Netty學習之路(四)-Netty入門實戰

前面學習了用Java原生NIO的編程實踐,過程還是挺複雜的,需要熟練掌握Selector,ServerSocketChannel握,SocketChannel,ByteBuffer等。所以在絕大多數業務場景中我們可以使用Netty

原创 Netty學習之路(七)-編解碼技術

當進行遠程跨進程服務調用時,需要把被傳輸的Java對象編碼爲字節數組或者ByteBuffer對象。而當遠程服務讀取到ByteBuffer對象或者字節數組時,需要將其解碼爲發送時的Java對象。這被稱爲Java對象編解碼技術。而我們

原创 責任鏈模式-Tomcat中Container處理請求方式

標準定義 使多個對象都有處理請求的機會,從而避免了請求的發送者和接收者之間的耦合關係。 將這些對象串成一條鏈,並沿着這條鏈一直傳遞該請求,直到有對象處理它爲止。 使用方式 抽象出一個處理類父類,提取公有方法和屬性。 a

原创 Netty學習之路(五)-TCP粘包/拆包問題

TCP是個“流協議”,所謂流,就是沒有界限的一串數據。TCP底層並不瞭解上層業務數據的具體含義,它會根據TCP緩衝區的實際情況進行包的劃分,所以一個完整的包可能會被TCP拆分成多個包進行發送,也有可能吧多個小的包封裝成一個大的數據

原创 Android從入門到精通-對話框

一. AlertDialog 對話提示框,通常是在某項操作觸發下顯示的控件,需要在代碼中調用show方法進行展現。AlertDialog的構造方法是protected,所以不能直接創建,有以下兩種方式來創建: 創建方式 通過Al

原创 Netty學習之路(二)-異步IO(NIO)編程

NIO到底是什麼簡稱?有人稱之爲New I/O,原因爲他相對於之前的I/O類庫來說是新增的。這是官方叫法。但是,由於之前老的I/O類庫是阻塞I/O,New I/O類庫的目標就是讓java支持非阻塞I/O,所以更多的人稱之爲非阻塞I

原创 DelegatingFilterProxy源碼解析

0.引言 在web項目中寫過濾器時,若想使用sprng的某些功能,可以通過DelegatingFilterProxy類來實現,該類相當於一個代理類,它會通過配置的filter-name的值去spring容器中找到對應的bean,並

原创 本地項目提交到github上

1.本地新建git項目 在項目文件夾下打開git命令窗口,輸入以下命令: git init 2.在github上新建 Repositories,複製項目url 3.關聯遠程倉庫 輸入以下命令 git remote add or

原创 maven配置不同的環境

在使用maven開發項目時,可以通過配置在開發時使用開發環境,項目上線時使用生產環境,實現方式如下: 1.配置pom.xml中profiles <profiles> <!-- 開發環境 --> <

原创 idea中.ignore的配置

在idea中新建了一個項目,當想用git來進行項目版本管理時,可以直接在idea中操作,如下圖: 成功將項目轉變成Git可以管理的倉庫後,在idea中發現有很多原本需要忽略的文件也呈紅色,原因是沒有配置.gitignore文件。

原创 oracle視圖

1.視圖的定義 視圖是基於一個表或多個表或視圖的邏輯表,本身不包含數據,視圖基於的表稱爲基表。視圖只有邏輯定義,每次使用的時候只是重新執行SQL。通過它可以對錶裏面的數據進行查詢和修改。 視圖是存儲在數據字典裏的一條select語