原创 二叉搜索樹你懂了嗎?

二叉搜索樹你懂了嗎? 什麼是二叉搜索樹? 二叉搜索樹就是當我們需要對一組非常龐大的數字進行搜索時,什麼樣的數據結構才能讓我們用盡量少的時間來搜索到我們想要找的數字呢?(當然也可以是其他數據類型,這裏我用數字來舉例) 這個時候我們想

原创 虛函數的默認參數的值是依賴對象靜態類型決定的

虛函數的默認參數的值是依賴對象靜態類型決定的 我們來先從一道題來引出這個問題: 這道題的要求是輸出結果是什麼? 如果你的選項不是B,那麼你需要跟着我一起來學習一下,虛函數的默認參數到底需要取哪個? 標準庫規定 就是說,虛函

原创 未決信號、阻塞信號、信號處理函數表

未決信號、阻塞信號、信號處理函數表 實際執行信號的處理動作稱爲信號遞達(Delivery)。 信號從產生到遞達之間的狀態,稱爲信號未決(Pending)。 進程可以選擇阻塞 (Block )某個信號。 被阻塞的信號產生時將保持

原创 鎖(哲學家就餐問題)

鎖? 死鎖 死鎖是指在一組進程中的各個進程均佔有不會釋放的資源,但因互相申請被其他進程所站用不會釋放的資源而處於的一種永久等待狀態。 死鎖的四個必要條件 互斥條件:一個資源每次只能被一個執行流使用。 請求與保持條件:一個執行流因

原创 七大經典排序

七大經典排序 插入排序 插入排序開始先把第一個數字作爲一個有序子數組,然後從第二個數字開始。 既然前面是一個有序的數組,那麼當前這個數組只要逐個跟前面的有序子數組比較就行。 如果當前數字比前面的數字小,就把前面的數字往後挪一個位置

原创 GoLang:數組的切片失效

GoLang:數組的切片失效 學習切片的時候想到一個問題:如果一個切片是引用一個完整的數組,那麼給這個切片 append 一個元素後,這個 append 的元素會以什麼樣的形式存在? 先看代碼: arr := []int{1,

原创 Golang 原子操作與互斥鎖

Golang 原子操作與互斥鎖 先來看一個代碼 package main import ( "fmt" "runtime" "sync" ) var ( counter int32 wg sync.WaitGrou

原创 Spark核心RDD

Spark核心RDD RDD 全稱爲 Resilient Distributed Dataset 彈性分佈式數據集 因爲在剛接觸了spark後,好像有很多這種 RDD 的類型,RDD 就是 spark 在計算過程中使用的數據集

原创 Scala 條件語句和循環

Scala 條件語句和循環 該篇博客僅適用於已經有至少一門的語言基礎的同學 If Else Scala 的條件判斷語句跟其他語言沒什麼不同,就是判斷的時候需要加上括號。Golang 在判斷的時候就不需要加括號。 if (

原创 Scala 方法與函數

Scala 方法與函數 方法的定義 object Scala_Function { def main(args: Array[String]): Unit = { def max(lhs: Int, rhs: Int)

原创 go test 用法總結

go test 用法總結 使用操作 在當前目錄下使用 go test 會運行當前目錄下所有的 test 文件。 test 文件命名 xxx_test.go test 文件裏需要運行的方法命名 TestXxx(t *te

原创 Go 語言操作 MySQL 數據庫

Go 語言操作 MySQL 數據庫 起步 首先需要引入一個驅動,在命令行使用 go get 引入即可: go get github.com/go-sql-driver/mysql 然後在 import 的時候,只需要該驅

原创 Golang:如何優雅的讓所有子協程執行完後再執行主協程

Golang:如何優雅的讓所有子協程執行完後再執行主協程 方法一:channel 實現同步 使用 channel 來完成同步功能。 /* @Time : 2019-10-28 下午 5:30 @Author : Gerald @F

原创 Go 語言--變量逃逸

Go 語言–變量逃逸 堆和棧各有優缺點,該怎麼在編程中處理這個問題呢?在 C/C++語言中,需要開發者自己學習如何進行內存分配,選用怎樣的內存分配方式來適應不同的算法需求。比如,函數局部變量儘量使用棧;全局變量、結構體成員使用堆分

原创 返回值優化(Return Value Optimization -- RVO)

返回值優化(Return Value Optimization – RVO) 在日常開發中,我們不得不會遇到返回對象的情況。那麼對於 追求效率 的程序員來說,返回對象是一件很痛苦的事情。 舉個栗子🌰 考慮這樣的一種情況:分數相乘