天天看点

#指尖人生#java开发工程师如何快速转go开发工程师

1.浅谈java跟go的区别

1.1什么是java

#指尖人生#java开发工程师如何快速转go开发工程师
  • ​Java是一种用于一般用途的计算机编程语言,它是基于类的,并发的和面向对象的。Java专门设计为包含很少的实现依赖项。Java应用程序在JVM(Java虚拟机)上运行。它是当今最着名和最着名的编程语言之一。​
  • ​Java是一种用于为多个平台开发软件的编程语言。Java应用程序上的编译代码或字节码可以在大多数操作系统上运行,包括Linux,Mac操作系统和Linux。Java的大部分语法都源自C ++和C语言。​

简单说,java就是一门面向对象的高级编程语言,面向web开发非常的方便。框架比较流行的有spring,spring boot ,

spring cloud等等。

1.2什么是go

#指尖人生#java开发工程师如何快速转go开发工程师
简单说,go也是一种编程语言,语法类似C语言,但是具有垃圾回收机制,​与C++相比,Go并不包括如​​枚举​​​、​​异常处理​​​、​​继承​​​、​​泛型​​​、​​断言​​​、​​虚函数​​​等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。​

​go多用于k8s云原生编程,以及一些高并发处理的编程。​

2.如何学习go编程

2.1go语言的学习过程

个人推荐三天看完这个go基础教程 :​​ go语言教程​​

#指尖人生#java开发工程师如何快速转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上拉了一个项目,看了看源码。理解了下,前后端交互流程。​

#指尖人生#java开发工程师如何快速转go开发工程师