Go 语言基础| 青训营笔记

85 阅读4分钟

今天主要说一下第一次接触go语言的理解与感受:

Go语言简介

Go语言简介 Go 语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++等编译型语言的性能与安全性” Go 语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go 语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。 Go 语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用 Go 语言开发项目。 Go 语言有时候被描述为“C 类似语言”,或者是“21 世纪的 C 语言”。Go 从 C 语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有 C 语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。 因为 Go 语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go 语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说 Go 语言是一门混合型的语言。 此外,很多重要的开源项目都是使用 Go 语言开发的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。

Go和Java的区别

性能

在性能方面,Go通常比Java更快。这是因为Go在设计时就考虑了高并发和并行处理的需求,所以它的并发机制比Java更加高效。另外,Go还采用了垃圾回收技术,可以在程序运行时自动回收不再使用的内存,避免了内存泄漏的问题。相比之下,Java的垃圾回收器相对比较耗费资源,可能会对程序的性能产生一定影响。

语法

Java是一种面向对象的编程语言,它的语法规则和类型系统比较严格。Java程序员需要写更多的代码来完成一些任务,但是这也使得Java程序更加可读和可维护。相比之下,Go的语法更为轻量级,采用了C风格的语法,支持指针、结构体、数组等。这使得Go程序员能够更快地编写代码,同时也更容易阅读和理解。

并发性

Go是一种具有并发编程特性的编程语言,它的并发机制比Java更加高效。在Go中,可以使用goroutine来实现并发,而goroutine的创建和销毁非常轻量级,不会占用大量的资源。另外,Go还提供了一些通信机制,如通道(channel),可以让不同的goroutine之间进行通信和同步。相比之下,Java需要使用线程来实现并发,线程的创建和销毁比较耗费资源,而且需要使用锁等机制来进行同步,容易出现死锁等问题。

应用场景

Java和Go都有广泛的应用场景。Java广泛用于企业级应用程序、Web应用程序、移动应用程序和游戏开发等领域。Java拥有丰富的生态系统和开源社区,有大量的库和框架可用于各种应用场景。相比之下,Go更适用于网络编程、分布式系统和云计算等领域,尤其是对于需要高并发、高性能、低延迟的应用场景,Go更具优势。Go的生态系统虽然相对较小,但是也在不断发展壮大,拥有一些优秀的库和框架,如gin、beego等。