Time of Update: 2016-02-28
標籤:很多人都知道SQL注入,也知道SQL參數化查詢可以防止SQL注入,可為什麼能防止注入卻並不是很多人都知道的。本文主要講述的是這個問題,也許你在部分文章中看到過這塊內容,當然了看看也無妨。 首先:我們要瞭解SQL收到一個指令後所做的事情:具體細節可以查看文章:Sql Server 編譯、重編譯與執行計畫重用原理 在這裡,我簡單的表示為: 收到指令 -> 編譯SQL產生執行計畫 ->選擇執行計畫
Time of Update: 2016-02-29
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 GO並發 在一個函數調用前加上go關鍵字,這次調用就會在一個新的goroutine中並發執行。func Add(x, y int) { z := x + y fmt.Println(z)}func main() { for i := 0; i < 10; i++ { go Add(i, i) }} Go程式從初始化main
Time of Update: 2016-02-29
這是一個建立於
Time of Update: 2016-02-29
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go語言沒有像其它語言一樣有public、protected、private等存取控制修飾符,它是通過字母大小寫來控制可見度的,如果定義的常量、變數、類型、介面、結構、函數等的名稱是大寫字母開頭表示能被其它包訪問或調用(相當於public),非大寫開頭就只能在包內使用(相當於private,變數或常量也可以底線開頭) 例如: visibility/test.gopackage
Time of Update: 2016-02-28
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。封裝成函數:func ShellSort(a []int) {n := len(a)h := 1for h < n/3 { //尋找合適的間隔hh = 3*h + 1}for h >= 1 {//將數組變為間隔h個元素有序for i := h; i < n; i++ {//間隔h插入排序for j := i; j >= h && a[j] < a[j-h]; j -= h {swap(
Time of Update: 2016-02-28
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。封裝成函數://插入排序func InsertionSort(s []int) {n := len(s)if n < 2 {return}for i := 1; i < n; i++ {for j := i; j > 0 && s[j] < s[j - 1]; j-- {swap(s, j, j - 1)}}} func swap(slice []int, i int, j int)
Time of Update: 2016-02-28
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1. 前往http://golang.org下載go安裝包並傻瓜式安裝2. 安裝完成後可以開啟終端輸入go命令可以檢測安裝是否成功3. 可以輸入go version查看所安裝的go版本4. 環境變數配置GOPATH是用來告訴Golang命令和其他相關工具,在哪裡可以找到你系統上的Go包目錄。GOPATH是一個路徑列表,類似於PATH的設定GOPATH=/home/USER/go:/home/USER/workspace_go:**
Time of Update: 2016-02-28
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近使用golang開發windows服務,需要擷取idle time,由於資料比較少,在此記錄,代碼如下:package osapiimport ( "syscall" "unsafe" "github.com/lxn/win")// last input infovar lastInputInfo struct { cbSize uint32
Time of Update: 2016-02-28
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang windows 判斷是否鎖屏:package osapiimport ( "syscall" "unsafe" "github.com/lxn/win")const ( DESKTOP_SWITCHDESKTOP = 0x0100 // The access to the desktop)// get desktop locked
Time of Update: 2016-02-28
這是一個建立於
Time of Update: 2016-02-27
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在golang編寫服務程式過程中,如果每次來鬥啟動一個goroutine去處理任務,處理一個任務後就退出,這樣勢必會造成資源浪費。構建一個工作goroutine池來處理任務相對資源利用會少些,具體的情況需對比測試。首先定義工作goroutine池,內部定義了兩個變數,一個是任務隊列,一個是需啟動goroutine的數量type WorkerPool struct { tasks <-chan *string //
Time of Update: 2016-02-27
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go mobile 開發的應用,真機調試時,我們期望看到log包打出的日誌, 這時候就需要借用 Android Device Monitor 了。 我們的 go 代碼中用最簡單的 log.Println 列印螢幕尺寸,如: 在 Android Device Monitor 可以看到列印出來的資料: 這時候的幾個關鍵搜尋定位字: tag:golog 注意要小寫。 app: org.golang
Time of Update: 2016-02-26
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1、使用nohup ./commond & 這種方法最簡單.2、這種方法可以使用訊號.<pre name="code" class="html">package mainimport ("fmt""os""os/signal""syscall""time")func main() {if
Time of Update: 2016-02-26
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package logimport ("sync""time""os""fmt""strconv")type Tlog struct{Qidx intQ1 []stringQ2 []stringQlen intQ1len intQ2len int Locker sync.MutexSavePath stringFilePrefix
Time of Update: 2016-02-29
標籤:【來信】 我先將這個具體情況講一講。我系的一位教過我課的老師接了一個項目,現在再學生去完成。 老師接的項目是要求用C#.Net、資料庫方面的知識去做的。我自己現在正在學習《傳智播客》免費提供的C#.Net學習視頻,我現在已學習了大約3/5,已經學習的部分是關於控制台應用程式的,對於.net FrameWork架構呢目前還沒有學習到。在我大二下學期時,學校開設了C#.Net這門課程,課程中對於.net
Time of Update: 2016-02-29
標籤:閱讀目錄 目錄1 演算法的基本描述2 演算法的應用情境。3演算法的優點和缺點4 演算法的輸入資料、中間結果以及輸出結果5 演算法的代碼參考6 共用相關與迴歸:我的線條如何?作者 白寧超
Time of Update: 2016-02-28
標籤: DescriptionHH有個一成不變的習慣,喜歡飯後百步走。所謂百步走,就是散步,就是在一定的時間 內,走過一定的距離。 但是同時HH又是個喜歡變化的人,所以他不會立刻沿著剛剛走來的路走回。 又因為HH是個喜歡變化的人,所以他每天走過的路徑都不完全一樣,他想知道他究竟有多 少種散步的方法。 現在給你學校的地圖(假設每條路的長度都是一樣的都是1),問長度為t,從給定地
Time of Update: 2016-02-28
標籤:原文連結:為什麼我eclipse建立項目的時候預設的是JRE1.5?修改Maven中conf目錄裡的setting.xml檔案內容,加上如下內容:<profiles> <!-- profile | Specifies a set of introductions to the build process, to be activated using one or more of the | mechanisms described
Time of Update: 2016-02-26
標籤: 定義:滿足a*k≡1 (mod p)的k值就是a關於p的乘法逆元。 為什麼要有乘法逆元呢? 當我們要求(a/b) mod p的值,且a很大,無法直接求得a/b的值時,我們就要用到乘法逆元。 我們可以通過求b關於p的乘法逆元k,將a乘上k再模p,即(a*k) mod p。其結果與(a/b) mod p等價。 證: 根據b*k≡1 (mod p)有b*k=p*x+1。 k=(p*x+1)/b。 把k代入(a*k) mod p,得:(a*(p*x+1)
Time of Update: 2016-02-26
標籤:go channel 開發package mainimport ( "fmt" "math/rand" "time")func production(channel chan<- string) { for {