原创 Go語言基礎之方法

1. 什麼是方法 方法就是一類帶特殊的 接收者 參數的函數,即帶了接收者的函數。方法接收者在它自己的參數列表內,位於 func 關鍵字和方法名之間。 具體實例如下: package main import ( "fmt"

原创 劍指offer之字符串替換問題

題目一:函數將字符串中的字符‘※’號移到字符串的前部分,前面的非‘※’字符後移,但不能改變非字符的先後順序,函數返回串中非’*'字符的數量。(要求儘可能的佔用少的時間和輔助空間)。例如:原始串爲"au※※toc※※h※※i※ps"

原创 【C++】面向對象思想

衆所周知,C++是一門面向對象的編程語言,但是什麼是面向對象思想呢? 面向對象思想就是,計算機模擬現實世界的過程,例如:現實中的人類,他是一個實體,每個人都有屬性和行爲,比如姓名、性別、年齡都是他的屬性,還有喫飯、學習、睡覺這些都

原创 【C++】封裝、繼承與多態

封裝 這個很好理解,將成員變量和成員方法,將一些方法的實現屏蔽起來,以達到對用戶的透明! 繼承 多態 多態就是同一接口,多種形態 多態的發生時機:指針調用虛函數,並有對象生成 什麼是虛函數? 虛函數就是在普通函數前面加上

原创 【Linux】靜態庫和動態庫的區別

靜態庫在編譯的時候會被直接拷貝一份到目標程序裏,這段代碼在目標程序裏就不會再改變了。動態庫在編譯時並不會被拷貝到目標程序中,目標程序中只會存儲指向動態庫的引用。等到程序運行時,動態庫纔會被真正加載進來。且同一份庫可以被多個程序

原创 【Linux】系統調用過程及意義

系統調用 Linux內核中設置了一組用於實現各種系統功能的接口,稱爲系統調用。爲了方便使用操作系統,操作系統預留出了一些接口,這些接口就是系統調用函數。用戶可以通過系統調用命令在自己的應用程序中調用它們。從某種角度來看,系統調用

原创 【C++】STL之順序容器

什麼是容器? 容器,置物之所也!研究數據的特定排列方式,以利於搜尋或排序或其它特殊目的,這一專門學科我們稱爲數據結構(Data Structures)。容器即是運用最廣的一些數據結構實現出來的!常見的數據結構有數組(array)

原创 劍指offer之合併倆個有序數組

題目:給定倆個有序的數組,將倆個數組合併到一個數組中,使得數組依然有序。 解題思路:用 i 和 j 標記倆個數組的開始位置,倆倆比較,將小的數插入到新數組中。當一個數組結束的時候,將另外一個數組插入到新數組中。 示例代碼如下:

原创 【Linux】硬中斷和軟中斷的區別

中斷 中斷本質上是-一種特殊的電信號,由硬件設備發向處理器。從物理學的角度看,中斷是一種電信號,由硬件設備生成,並直接送入中斷控制器的輸入引腳中一中斷控制器是個簡單的電子芯片,其作用是將多路中斷管線,採用複用技術只通過一個和處理

原创 【Linux網絡】OSI七層模型

七層 作用 協議 應用層 文件傳輸、電子郵件、文件服務 DNS/FTP/SMTP/SNMP 表示層 數據格式化,代碼轉化、數據加密 無協議 會畫層 解除或建立別的接點的聯繫 無協議 傳輸層 提供端到端的接

原创 【Linux網絡編程】TCP的三次握手、四次揮手

TCP是傳輸層的主機對主機控制協議,提供可靠的連接服務,採用三次握手確認建立一個連接。 三次握手 三次握手是倆臺主機建立連接的過程,建立之前的初始狀態是:client處於connect狀態,server處於listen的狀態。

原创 算法之Shell排序

Shell排序是對插入排序的改進和插入排序十分相似,Shell排序的思路如下: 分組 對每組進行排序:這個不是每組內有序,假設分爲三組,使得這三組中的第一個數字有序,然後使得第二數字有序,一次所有數字都有序了 最後歸到一組 示

原创 算法之二分排序

二分排序這個詞是我在面試中遇到的,當時第一反應是二分查找,然後被打斷,是二分排序算法,最終才瞭解到,二分排序就是我們熟知的歸併排序。它又稱二路排序。 首先說一下歸併的思想:先將一組數列,數列中含有n個元素,假設將每一個元素看成是

原创 劍指offer之鏈表中找環問題

題目:給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null。 解題思路:定義倆個快慢指針,同時指向鏈表的頭指針,快指針每次走倆步,慢指針每次走一步,當快慢指針相遇的時候,此時證明鏈表中有環,然後將快指針指向頭

原创 【Linux】進程與線程

什麼是進程呢? Linux程序設計中是這樣定義的,進程是一個其中運行着一個或多個線程的地址空間和這些線程所需要的系統資源。即運行中的程序。也可以理解爲是一組有序指令、數據、和資源的集合。每個進程都有一個非負整型表示的唯-進程ID