Golang和java區(qū)別和特點:
- 主要優(yōu)點:代碼簡潔(get平夜、set、換行符都省了)、更好的支持高并發(fā)微線程粟瞬、更多的基本類型對內(nèi)存占用更精準(int8 uint8)、依賴更少更輕
- 共同點:都支持垃圾自動回收萤捆、靜態(tài)類型(go支持自動推導類型)裙品、反射
- 區(qū)別:Go支持接口,但是不支持繼承俗或,一般通過成員變量的方式實現(xiàn)類似的效果
- 其他:GQuery市怎、Beego等框架,非常適合爬蟲類項目辛慰,和后端高并發(fā)項目区匠,有成熟的類庫支持。
Golang核心: go 關鍵字帅腌、channel(類似于阻塞隊列)驰弄、鎖(互斥鎖、讀寫鎖)
- go語言中開啟一個goroutine非常簡單速客,go函數(shù)名()戚篙,就開啟了個微線程:比如 go addTicket();
- 支持高并發(fā),隔離性溺职、內(nèi)存開銷小已球、切換開銷小臣镣。1個物理線程支持多個Goruntie,Go維護了Goruntie之間的隔離性智亮,而且每個Goruntie物理開銷很小忆某,內(nèi)存2kb,一般線程都是1M以上(JVM里面每個線程棧默認大小1M阔蛉,線程獨享的空間)弃舒,且切換起來,代價不高状原。
- channel是一個先進先出的隊列聋呢,多線程之間通訊的工具(類似于阻塞隊列)