1.淺談java跟go的差別
1.1什麼是java
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM1czX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xCNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLkVWZ0IzNwYmNzUWZyMGO1AzNwAjZxEmNkRzYiZDM5UWN3IWN1IzLcNDMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
- Java是一種用于一般用途的計算機程式設計語言,它是基于類的,并發的和面向對象的。Java專門設計為包含很少的實作依賴項。Java應用程式在JVM(Java虛拟機)上運作。它是當今最着名和最着名的程式設計語言之一。
- Java是一種用于為多個平台開發軟體的程式設計語言。Java應用程式上的編譯代碼或位元組碼可以在大多數作業系統上運作,包括Linux,Mac作業系統和Linux。Java的大部分文法都源自C ++和C語言。
簡單說,java就是一門面向對象的進階程式設計語言,面向web開發非常的友善。架構比較流行的有spring,spring boot ,
spring cloud等等。
1.2什麼是go
簡單說,go也是一種程式設計語言,文法類似C語言,但是具有垃圾回收機制,與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能,但增加了 切片(Slice) 型、并發、管道、垃圾回收、接口(Interface)等特性的語言級支援。
go多用于k8s雲原生程式設計,以及一些高并發處理的程式設計。
2.如何學習go程式設計
2.1go語言的學習過程
個人推薦三天看完這個go基礎教程 : go語言教程
怎麼學習基礎文法呢?
- 首先學習如何定義變量
- 然後學習如何運作資料結構
- 然後學習如何寫函數
- 最後了解golang獨有特性
2.2go的特點
并發
Go 作為一門語言緻力于使事情簡單化。它并未引入很多新概念,而是聚焦于打造一門簡單的語言,它使用起來異常快速并且簡單。其唯一的創新之處是 goroutines 和通道。Goroutines 是 Go 面向線程的輕量級方法,而通道是 goroutines 之間通信的優先方式。
編譯速度
目前我們使用 Go 編寫的最大微服務的編譯時間隻需 6 秒。相較于 Java 和 C++呆滞的編譯速度,Go 的快速編譯時間是一個主要的效率優勢。我熱愛擊劍,但是當我依然記得代碼應該做什麼之時,事情已經完成就更好了。
3.go跟java的差別
go語言和Java之間的差別
1、函數重載
Go上不允許函數重載,必須具有方法和函數的唯一名稱。java允許函數重載。
2、速度
go的速度比java快
3、多态
Java預設允許多态。而,Go沒有。
4、路由配置
Go語言使用HTTP協定進行路由配置;而java使用Akka.routing.ConsistentHashingRouter和Akka.routing.ScatterGatherFirstCompletedRouter進行路由配置。
5、可擴充性
Go代碼可以自動擴充到多個核心;而,Java并不總是具有足夠的可擴充性。
6、繼承
Go語言的繼承通過匿名組合完成:基類以Struct的方式定義,子類隻需要把基類作為成員放在子類的定義中,支援多繼承。
4.個人了解
小編個人覺得程式設計語言大同小異,隻不過開發起來各有優缺點,小編剛畢業的時候是一名C++開發工程師,C++是一門面向對象的程式設計語言。用起來比C友善很多,但是跟java相比,缺少了很多工具類,很多函數的實作都要自己去寫,而且不能跨平台,但是C++也有自己的優點呀,那就是運作速度很快,很多資料上的處理,比java快很多。缺點就是linux跟windows不同版本函數之間還是有一點點差別,也沒有垃圾回收機制,自己申請的記憶體需要自己手動的釋放。不過寫久了以後,有了自己的封裝庫,寫背景系統也是挺友善的。
後來小編離職了以後來到了一家新公司,這是一家新成立的事業機關,該公司做的項目是偏向雲平台的,剛開始做是用的java開發,給前端界面寫背景接口,因為小編是前端開發幾乎一竅不通,剛來的時候連rest接口是啥都不知道,更不用說nginx是什麼了。但是小編花了一周時間學習java文法規範。也不懂spring是啥,于是github上拉了一個項目,看了看源碼。了解了下,前後端互動流程。