原创 Java NIO使用及原理之--總概述

轉載自:李會軍•寧靜致遠 最近由於工作關係要做一些Java方面的開發,其中最重要的一塊就是Java NIO(New I/O),儘管很早以前瞭解過一些,但並沒有認真去看過它的實現原理,也沒有機會在工作中使用,這次也好重新研究一

原创 選擇排序之--簡單選擇排序,堆排序

    簡單選擇排序的思想很簡單:每次從無序區裏選出一個最小的的數,然後把他放進有序區的末尾,如此往復,直到全部有序。      堆排序,堆排序是對簡單選擇排序的一種改進,顯然簡單選擇排序,要經過大量的比較的出最小的數,而堆排序的着眼點

原创 java中一些容器底層的數據結構解析

       先來看一個java裏一些主要容器的繼承圖:   然後分別解析一下上面幾種容器底層的數據結構以及一些實現: 1.ArrayList(非線程安全的) 底層的數據結構其實就是數組,但是它比數組優秀的地方在於他是動態的,即不必

原创 String,StringBuffer與StringBulider三者的區別

              我們都只到String和StringBuffer的區別,即String是不可拓展的,即String如果要實現A字符串+B字符串的效果,則不能直接把B接在A後面,而必須新開一個C,然後把A+B放進C.而Stri

原创 Reactor反應器模式

概述 Java NIO非堵塞技術實際是採取反應器模式,或者說是觀察者(observer)模式爲我們監察I/O端口,如果有內容進來,會自動通知我們,這樣,我們就不必開啓多個線程死等,從外界看,實現了流暢的I/O讀寫,不堵塞了。 同步和

原创 單例模式分析

      單例模式在我們項目中經常被用到,可能也是設計模式中比較簡單的一種,實現單例的方式有好幾種,有各自的優缺點,對於一些整個項目中只需要一個的實例,特別是這個對象內部佔的資源還很大的時候,單例模式無疑是十分節省資源的,是一種優秀的

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

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

原创 Java NIO使用及原理之--緩衝器buffer(2)

轉載自:李會軍•寧靜致遠 在上一篇文章中介紹了緩衝區內部對於狀態變化的跟蹤機制,而對於NIO中緩衝區來說,還有很多的內容值的學習,如緩衝區的分片與數據共享,只讀緩衝區等。在本文中我們來看一下緩衝區一些更細節的內容。 緩衝區的

原创 利用wait()和notify()實現生產者與消費者問題

     生產者與消費者問題是併發編程裏面的經典問題,下面用wait()和notify()來實現消費者線程和生產者線程的併發執行。    說之前先講幾個概念:    wait()與sleep()的區別:        1.首先slee

原创 插入排序之--直接插入排序,希爾排序

      直接插入排序是插入排序裏最簡單的一種,他的排序方式十分直接,就是從拿無序區的第一個數開始與有序區的最後一個數往前開始比,如果比他大,則直接插入在他後面,如果比他小,則繼續往前比,直到找到合適的地方插入。如此往復,最終實現全部

原创 Java動態綁定機制原理分析

在Java方法調用的過程中,JVM是如何知道調用的是哪個類的方法源代碼? 這裏面到底有什麼內幕呢? 這篇文章我們就將揭露JVM方法調用的靜態(static binding) 和動態綁定機制(auto binding) 。    

原创 HTTP協議之報文詳解

學習WEB開發需要對HTTP協議熟悉,下面直接進入主題。 一、什麼是報文 報文,是網絡中交換和傳輸的數據單元,即站點一次性要發送的數據塊。報文包含了將要發送的完整的數據信息,其長短很不一致,長度不限且可變。 HTTP報文是由一

原创 面向對象編程的六大原則

      要讓自己寫的代碼有質量,特別是對於面向對象編程的話,代碼以及框架的是否合理直接決定了你的程序是否可以良好的擴展和壯大,這在軟件工程中也多少學過一點,簡單來說就是要做到低耦合高內聚,經過編程人員多年的總結,良好的框架設計或者

原创 分配排序之--桶排序,基數排序

    桶排序的思想:其實就是先分配在收集的這個一個過程。比如開一個數組,然後把待排序數列裏比如1就放到數組位置1,3就放到數組位置3,然後把這個數組裏按順序輸出,則這個數列就變成有序了。    基數排序,上面的桶排序是對單關鍵碼進行

原创 Java NIO使用及原理之--緩衝器buffer(1)

轉載自:李會軍•寧靜致遠 在第一篇中,我們介紹了NIO中的兩個核心對象:緩衝區和通道,在談到緩衝區時,我們說緩衝區對象本質上是一個數組,但它其實是一個特殊的數組,緩衝區對象內置了一些機制,能夠跟蹤和記錄緩衝區的狀態變化情況,如