原创 數據結構中的堆的實現和堆排序

堆的實現 堆的本質是一二叉樹,並且是一顆完全二叉樹。 堆分爲大堆和小堆,大堆就是在堆頂的元素的值是這個完全二叉樹中的最大值,小堆剛好相反,是最小值。在樹這個數據結構定義的時候是遞歸定義的所以也就滿足,一個樹中子數的更節點是最大或者

原创 C++中多態實現的原理分析、虛繼承的原理

多態的原理分析 在面向對象的語言中,封裝、繼承、多態三大特性。我們今天說說C++中多態的實現原理。 多態往往是用來在繼承中,子類中的某些行爲與父類中的不同,但是爲了降低調用的耦合度,我們就定義出,一個對象中有不同的形態,當然是相

原创 mybatis的接口無法注入到service層。

mybatis的接口無法注入到service層 spring中mybatis接口注入到service層,有兩種做法: <bean id="fileManagementMapper" class="org.mybatis.sp

原创 IO多路複用之epoll

IO多路複用之epoll epoll出現背景 在前面的文章中我們瞭解了,select的用法,也大體知道IO多路複用的概念。 今天我們就來了解epoll,select是早期的一個用來解決高併發的IO多路複用的手段,最大的缺點就是有文件描

原创 python2入門基礎語法(三)

接語法(二) 鏈接python語法 python中的list 關鍵字:in / not in 返回的是真假,判斷是否存在 這是比如要判斷某一個元素是否在list中就可以用in/not in list不能用in 去判斷list是子集,

原创 傳輸層--TCP協議段頭部信息及作用,可靠傳輸機制的實現

TCP協議段信息及作用 在前面我們講述了UDP協議段的頭部信息,UDP協議段信息 那麼今天接着說傳輸層的另一個協議,TCP協議。 TCP是傳輸層中比較重要的一種協議,它運用的地方很多,比如在FTP協議、http協議中就是運用了TCP的

原创 C++中STL中vector和list的迭代器失效問題

C++ 中vector和list是我們常用的容器,在容器配合算法的時候,就用到了迭代器。 這樣提高了代碼的可讀性,也配合了STL中的算法。但是在容器中使用迭代器時候會發生迭代器失效問題,所以我們就得注意。 首先我們看vector的迭代器

原创 基於TCP協議實現Linux下客戶端與服務器之間的通信,實現多線程、多進程服務器

TCP是TCP/IP協議族中一個比較重要的協議,這是一種可靠、建立鏈接、面向字節流的傳輸,工作在傳輸層。和TCP相對的不可靠、無鏈接、面向數據報的協議UDP,瞭解UDP客戶端與服務器之間通信請戳UDP協議實現的服務器與客戶端通信 TCP協

原创 模擬實現c++中STL的vector容器,模擬實現常用接口和迭代器

在C++中經常會用到STL的六大組件。哪六大組建呢? 有容器、算法、迭代器、容器適配器、空間配置器和仿函數,六大組件。 今天我們來模擬實現一下容器中的vector。 先說說vector的優點: 1)vector支持隨機訪問,這是它

原创 python2入門級基礎語法(二)

python基礎語法筆記(二) 換行要求 換行 : 在{} [ ] () 中 解釋器會認爲是一個代碼塊,換行也可以 一行太長可以用 \ 來進行換行 字符串中的 ’ ’ 和 ” ” 都不可以換行, ”’ ”’ 可以換行但是

原创 應用層中的超文本傳輸協議----HTTP協議

在計算機網絡中有osi網絡七層模型,因爲在實際中七層模型就可以轉化成五層模型,如果有些模糊請戳網絡基礎 對於HTTP協議是在應用層上的一個協議,在應用層上協議可以是在實際開發中自己制定,但是像HTTP這些很高技術的大牛制定好的協議,非常好

原创 Linux中線程的同步與互斥、生產者消費模型和讀者寫者問題、死鎖問題

線程的同步與互斥 線程是一個存在進程中的一個執行控制流,因爲線程沒有進程的獨立性,在進程內部線程的大部分資源數據都是共享的,所以在使用的過程中就需要考慮到線程的安全和數據的可靠。不能因爲線程之間資源的競爭而導致數據發生錯亂,也不能因爲有些

原创 網絡套接字socket,利用UDP協議實現服務器與客戶端通信

兩臺主機之間的通信,是通過網卡再經過網絡,互相傳輸,那麼我們先來介紹再通信中想要在全球的pc中找到你要發送數據那一臺,就需要IP來標識,那麼這裏在數據報文中就包含了源IP和目的IP,分別標識的是數據從哪來要到那裏去。 有了IP那麼要怎麼認

原创 五種IO模型、IO多路複用之select用法

五種IO模型 在馮諾依曼計算機體系結構中,輸入輸出設備是其中的兩大組件, 那麼今天我們就來談談計算機中IO(輸入輸出)模型 IO分爲 阻塞IO、非阻塞IO、信號驅動IO、IO多路轉接、異步IO 阻塞IO 阻塞IO是我們在開發中非常常見的

原创 Linux中進程與線程的區別、線程的創建、等待與退出

進程與線程的區別 在瞭解線程與進程之間的區別前我們先來認識線程與進程,我們從概念入手,什麼是線程、什麼是進程,再進行進程與線程之間的不同點與相同點比較,優點與缺點進行比較理解。 進程的概念 進程(Process)就是程序的一次實例化,是