Java程序员如何学习Golang(一)(golang java 学哪个)

createh55个月前 (01-23)技术教程66

不会golang的程序员不是好的java程序员,现在的docker、k8s,以及其他一些中间件很多都是采用golang语言开发,作为一个java程序员,不能只会用他们,还是应该多了解一些底层原理性的东西,才不至于被淘汰。

废话不多说,学习golang之前,我们先安装一些golang的环境,可以在https://golang.google.cn/dl/ 下载最新的golang安装包,和java一样,安装按照提示一步一步安装就好,没有什么特别的配置。然后是IDE,我们可以用jetbrains的产品Goland,和java版的IDE是一样的操作界面,这里就介绍安装了,大家可以自己百度。

现在我们开始创建一个项目



里面只有一个go.mod文件,这个就类似pom文件,管理项目的包依赖的

我们新建一个叫main的go文件,开始我们的hello world



这里稍微解释一下,要执行main函数的文件的包名,也得必须是叫main,golang的包的作用和java里的差不多,主要是:

1. 区分相同文件的函数,变量等标识符

2. 当程序文件很多的时候,可以很好地管理项目

3.控制函数。变量等访问范围,即作用域

java中一个文件就是一个和类同名的文件,go中一个文件就是包含一堆函数的文件,文件和类没有什么关系,如果你高兴,把所有代码写在一个文件里也没有关系。

没有java中public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头)

函数定义格式是下面这个样子的,如果有返回值可以在括号后面添加返回值的类型,如果没有就可以不用写

fun function_name ([parameter list]) [return_types] { 函数内容}



上面的是go支持的数据类型,数字类型相比java,做了按长度做了更细粒度的划分,注意一点如果使用uint、int 声明变量,类型长度取决于 CPU,如果是32位CPU就是4个字节,如果是64位就是8个字节,所以才看到位数是32或64位。


go的变量声明方式和java也不太一样,需要var关键字声明变量,数据类型是放在变量名的后面,同时也可以使用:= 的方式直接给变量赋值,go会根据值推断数据类型


关于变量和常量的定义和注意点可以参考下图

相关文章

图文详解Java对象内存布局(java 对象内存大小)

作为一名Java程序员,我们在日常工作中使用这款面向对象的编程语言时,做的最频繁的操作大概就是去创建一个个的对象了。对象的创建方式虽然有很多,可以通过new、反射、clone、反序列化等不同方式来创建...

Java-对象到底占多少个字节?计算规则是什么?

JAVA对象模型我们先了解一下,一个JAVA对象的存储结构。在Hotspot虚拟机中,对象在内存中的存储布局分为 3 块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(...

火狐浏览器的纯64位优化版,Waterfox 36.0下载

IT之家(www.ithome.com):火狐浏览器的纯64位优化版,Waterfox 36.0下载Waterfox是一个纯64位版的火狐浏览器,它使用Firefox官方源码,专门为64位Window...

《Servlet》第02节:Tomcat运行环境及目录结构介绍

Tomcat是使用Java语言开发的一个开源免费的Web服务器,1、安装Tomcat容器我们作为初学者,这里直接使用Tomcat作为Servlet的运行容器,首先需要去Apache官网下载Tomcat...

这10种分布式ID,太绝了!(分布式id的作用)

前言分布式ID,在我们日常的开发中,其实使用的挺多的。有很多业务场景在用,比如:分布式链路系统的trace_id单表中的主键Redis中分布式锁的key分库分表后表的id今天跟大家一起聊聊分布式ID的...

最全面的44个Java性能调优细节(java系统性能调优)

我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这...