原创 C10破局(三)——Java AIO實現高併發服務器

上一篇博客中我們介紹了Java中的NIO模型,而JDK1.7之後升級NIO類庫,也就是NIO2.0.Java正式提供了異步IO操作,同時提供了與UNIX網絡編程事件驅動IO相對應的AIO。NIO(non-block IO)指的是同步非阻塞

原创 詳解HTTP/HTTPS(二)——HTTPS協議

HTTP/HTTPS協議無疑是面試中最常問的幾個計網協議之一。然而網上很多博客都寫得偏簡略,不夠全面。於是我便打算做一個整合。內容較多,大致會分爲兩篇篇博客,一篇介紹HTTP協議,一篇介紹HTTPS協議。 《詳解HTTP/HTTPS(一

原创 基於netty NIO開發的聊天室

一、爲何要使用netty開發 由於之前已經用Java中的socket寫過一版簡單的聊天室,這裏就不再對聊天室的具體架構進行細緻的介紹了,主要關注於使用netty框架重構後帶來的改變。對聊天室不瞭解的同學可以先看下我的博客(《JAVA簡單聊

原创 wireshark抓包分析SSL/TLS協議

SSL/TLS協議一般有兩種握手過程,一種是SSL握手,一種是會話恢復。前些時候在寫HTTP和HTTPS協議區別的時候介紹了SSL協議的相關理論知識,但多少還是有點抽象,今天我們可以通過wireshark抓包來分析下SSL握手的過程。

原创 詳解HTTP/HTTPS(一)——HTTP協議

HTTP/HTTPS協議無疑是面試中最常問的幾個計網協議之一。然而網上很多博客都寫得偏簡略,不夠全面。於是我便打算把最近我自己整理的資料整合起來,希望能夠幫助到大家。內容較多,大致會分爲三篇博客,一篇介紹HTTP協議,一篇介紹SSL/T

原创 Spring中JDBCTemplate的事務實現

一、事務的定義及特性 (一)、事務的定義 1、事務是一個最小的不可再分割的執行單元,它由批量的DML語句構成,這些語句要麼全部執行,要不全都不執行。 2、通常一個事務對應一個完整的業務。比如典型的轉賬業務,從賬戶A中轉賬1000元給賬戶B

原创 C10k破局(二)——Java NIO實現高併發服務器(一張圖看懂Java NIO)

想要開發高性能的服務器,傳統的BIO顯然是不行的,Java提供了java.nio類庫來幫助我們實現這件事。關於NIO的文章網上有很多博客,但是相應的解釋圖則比較少。於是我便自己整理了幾張關係圖,便於理解。在看原理圖之前,我們還是需要先看下

原创 C10k破局(一)——線程池和消息隊列實現高併發服務器

一、C10k的由來 互聯網的基礎就是網絡通信,早期的互聯網可以說是一個小羣體的集合。互聯網還不夠普及,用戶也不多,一臺服務器同時在線100個用戶估計在當時已經算是大型應用了,所以並不存在什麼 C10K 的難題。互聯網的爆發期應該是在www

原创 加解密系統(包含DES、RSA等加密算法)

最近和小夥伴一起構建了一個包含仿射、流密碼RC4、流密碼LFSR+JK,DES及RSA的加解密系統。界面包括加解密算法選擇框,加密解密按鈕,加密明文信息框以及解密密文信息框。 完整代碼已經上傳到github上了,裏面的README.md有

原创 程序、進程與線程(二)

在前一章博客(《程序、進程與線程(一)》)中,我們已經瞭解了程序與進程的概念與區別,今天我們再來講講進程與線程。進程用得好好的爲何還要出現線程呢?首先我們來看看進程的一些侷限性。 一、進程的侷限性 1、創建子進程時每次都要把父進程的數據都

原创 程序、進程與線程(一)

關於進程與線程的概念解釋網上有很多,但總感覺講的不是很清楚。於是今天打算整理一下這個方面的知識,語言力求通俗易懂 一、程序與進程 舉個具體的場景,某一天你爸媽不在家,你必須要自己做飯、洗衣服等等。你要做飯首先你得有做飯手冊呀,這個手冊中包

原创 關係型數據庫與NoSQL數據庫

一、關係型數據庫 目前我們常用的數據庫一般是關係型數據庫,比如Oracle、MySQL、SQL Server。 1、定義:基於關係模型(二維表)所提出的一種數據庫。 實際場景:學生與系的關係如下 一個學生必定屬於某一個系,因此我們可以把

原创 七種排序算法的具體實現(Java)

排序算法根據不同的算法思想往往有很多不同的實現。近期,個人整理了常見的七種算法,並用java對各個算法進行了具體實現,包括:插入排序、冒泡排序、選擇排序、shell排序、歸併排序、快速排序以及堆排序。 一、插入排序 算法步驟: 從第二個

原创 閒談java中的程序編譯與優化技術

java中的程序編譯和優化技術同其他語言一樣基本都發生在編譯期。java的編譯期可根據不同的編譯器分爲三個部分,一個是前端編譯器,比如javac;它的工作就是把.java文件轉化爲.class文件。另一個是即時編譯器,比如JIT編譯器;

原创 java servlet使用uploadfile實現文件上傳的功能

comons包導入IDEA失敗?文件上傳後在工程中相應的文件夾下找不到上傳的文件? 近期想要基於hadoop分佈式系統開發一個雲盤項目。前些時候已經給IDEA配置好了tomcat的環境,配置好了java servlet的運行環境。這兩天自