原创 Linux學習筆記(8)----基礎正則表達式

概念: 用鳥哥的話來說: 正則表達式是處理字符串的方法,它是以行爲單位來進行字符串的處理行爲,正則表達式通過一些特殊符號的輔助,是一種可以讓用戶輕易達到查找,刪除,替換某特定字符串的處理程序. 首先,先概括性地列出常用的符

原创 Linux學習筆記(7)----數據流重定向

定義: 數據流重定向大概是指把數據傳導到文件或者屏幕去. standard output: 顧名思義,標準輸出指命令執行回傳的正確信息. standard error output: 標準錯誤輸出,指命令執行失敗,傳回的錯

原创 聊一聊Gin Web框架之前,看一眼httprouter

httprouter 前言: Gin的詞源是金酒, 又稱琴酒, 是來自荷蘭的一種烈性酒。 在Go中,有一個經常提及的web框架,就是gin web,具備高性能,可靈活定製化的特點,既然它是如此被看好,在深入瞭解它之前,不妨先看下他

原创 聊一聊Go編寫的命令行工具類

命令行工具 原生flag包 Go原生在flag包提供了一個命令行工具類,它可以讓我們執行類似命令行的賦參操作,經常被運用於工具類,特別是數據處理過程,可以方便我們進行參數可視化註解。 flag包提供了多個常用類型的賦值方法,如St

原创 淺談Java單例模式

相信在設計模式中有一個經常提到的概念:單例模式,爲什麼它經常出現在面試話題中,因爲它的應用場景十分廣泛。 使用場景: 比如 數據庫連接池,作爲數據庫的緩存,避免頻繁連接關閉數據庫, Java線程池,控制管理線程。 log4j日誌

原创 聊一聊Go的Context上下文

Context 前言 前面在“聊一聊http框架httprouter”的時候,有提到上下文的概念,上一個demo用來列舉web框架中全局變量的傳值和設置,還類比了Java Spring框架中的ApplicationContext。

原创 Linux學習筆記(5)----shell默認的版本bash及變量的設置

shell 用鳥哥的話來說,只要有操作系統就有shell. 首先,認識從應用程序到硬件是如何過度的: 應用程序 -> {系統調用,內核(Kernel)}(操作系統) -> 硬件 應用程序處於最外層,這一層就是shell

原创 分治算法----快速排序

一.算法思想: 假設要對某數組進行由小->大排序 (1) 分解: 對於亂序數組a[R](存取範圍[0->R],有R+1個數),取一個基準元素a[P](一般以第一個數即a[0]爲基準),確定某個Partition(位置)Q ,使a[Q]右邊

原创 n後問題2.0(拉斯維加斯隨機算法)

前言: 昨天總結了個傳統窮舉的回溯法,考慮到由於遞歸回溯法時間複雜度高,超過12的皇后計算代價太大.如果基數過大,回溯法的優勢就不明顯了. 所以關於該算法的改進還有另一種拉斯維加斯(Las Vegas)算法,結合了隨機函數,提高了效率.

原创 Linux學習筆記(6)----Bash shell 登陸後配置文件的加載

在Linux中,有許多命令,其中包括 alias命令別名 和 bash的內置命令 那麼我們敲入一個命令之後,系統是根據什麼順序優先執行的呢? 鳥哥書中這樣表示: 1.以相對/絕對路徑執行命令,例如”/bin/ls” 或者 “.

原创 聊一聊堆、棧與Go語言的指針

堆、棧與指針 前言 堆、棧在計算機領域是亙古不變的熱門話題,歸根結底它們和編程語言無關,都是操作系統層面的內存劃分,後面嘗試簡單地拆開這幾個概念,談談我對它們的理解。 棧 每個函數中每個值在棧中都是獨佔的,不能在其他棧中被訪問。每

原创 關於Java的多線程的創建

一.線程的概念: 線程(thread),又叫輕量級的進程(Lightweight Process, LWP),它包括線程ID,當前指令指針,寄存器集合和堆棧. 在java中可以把一個程序轉換成多個獨立的子任務,每個子任務可以比喻爲一個線程

原创 聊一聊Go語言的error處理

前言 Go語言的錯誤處理是一個常見的操作,經常可以見到一個函數返回錯誤類型(error),後續通過if err != nil來判斷錯誤以及錯誤類型。這一次嘗試通過Go內置的error接口,聊一聊Go語言的錯誤處理以及Error的慣

原创 Linux學習筆記(1)

磁盤的分區:根據鳥哥的話,對磁盤分區不是用鋸子去切割的,那是怎麼對硬盤進行切分呢?原來,我們磁盤上的盤片可以細分出 扇區 和 柱面 兩種單位,每個扇區有512(字節)bytes, 其中第一個扇區記錄了主引導分區(MBR) 和 分區表 .主

原创 Go協程間通信 # 生產者-消費者模型

Go協程間通信之 生產者-消費者模型 通信原則 Go開發有一個經常提及的原則: 不要通過共享內存來通信(互斥鎖同步),而要用通信來共享內存。 前言 在其他模式的開發語言中,比如Java有個常見的生產者-消費者模式,通過多個線程