go java 性能 内存 go java 性能对比_Go

前言

写的文章,收到小伙伴的评论了,先撒花庆祝下!!

评论的内容是这样的:

go java 性能 内存 go java 性能对比_Java_02

我可能是不是很理解这位同学的想法,也就如图所示,简单作了下回复。

王牌飞行员,申请出战!!!

在此,我申明下,我觉得,我传递的是一种思想、一种思考,主要面向对象为Javaer或者是其他语言从业者,想要转型的人,或者想要多学点东西的人。

个人觉得,学习是必要的。但是如果需要舍弃的时候,需要理性分析,谨慎选择。

好,我们今天开聊吧。今天,我们进一步,从微观上去看看,Go与Java的比较。

我觉得,对于有Java基础的小伙伴来说,学习一门新的语言,其实不会很难。重点,在于找到其区别,掌握其核心差异。从而简单的,学会语法即可。

我不要求,小白,来看我写的内容。因为,可能确实不是很适合。毕竟是主题月专栏,我相信无数个小伙伴,会教你,怎么下载,怎么安装,怎么配置环境变量。

好,不废话,开始!!

Go社区

相信作为Java小伙伴来说,可能无数个Java社区在活跃。那么,作为Go的社区呢?在此,我们特别的列一下,常用的社区资源。

Go的官网: https://golang.org/ (这个,可能需要和谐网络)

Go的中文访问官网: https://golang.google.cn/

Go的中文社区:https://studygolang.com/

Go的中文文档: https://studygolang.com/pkgdoc

好,大概的网站信息,是这样的。

Go和Java的语言类型区别

学习一门新的语言,肯定要了解到底什么什么语言。

正如我们当年学习Java时,我们学习到,Java是一门半编译,半解释型语言。编译是指Java代码都会编译成class类型的文件,class类型的文件只需要编译一次,可以在不同的操作系统的Java虚拟机上即JVM执行 ,半解释是指在Java虚拟机中,还是需要一句一句的将class的二进制代码解释成对应操作系统可执行的代码。

那么,Go是一种什么语言呢?

Go是编译型的语言,运行在不同的平台需要打包成不同操作系统类型下的可执行文件。

GoPath和Java的ClassPath

我们先来看看关于Java的classpath:

在我们的开发环境中,一个web程序(war包)有一个classpath,这个classpath在IDEA的开发工具中目录体现为src目录和resource目录,实际上在真正的war包中他定位的是指WEB-INF下的classes文件夹下的资源(比如class文件)。

我们编译后的文件都放在classpath(类路径)下。我们多个项目程序会有多个classpath目录。

在Go语言中,GoPath在同一系统上的同一用户,一般规定只有一个,无论这个用户创建多少个Go项目,都只有一个GoPath,并且这些项目都放在GoPath下的src目录下。

GoPath下有三个目录:

1.bin (用于存放项目编译后的可执行文件)

2.pkg (用于存放类库文件,比如.a结尾的包模块)

3.src (用于存放项目代码源文件)

注意:当我们在windows上开发Go程序时,需要新建一个文件夹(文件夹名任意)作为GOPATH的文件目录,在其中新建三个文件夹分别是:bin,pkg,src。如果是在集成开发工具上开发的话,需要在设置中把GOPATH路径设置为你自定义的那个文件夹,之后产生的文件和相关内容都会在其中。

如果是在linux上想跑测试开发执行go程序,需要在/etc/profile添加名为GOPATH的环境变量,目录设置好自己新建的。

例如:全局用户设置GOPATH环境变量

vi /etc/profile
#添加如下 目录可以灵活修改
export GOPATH=/pub/go/gopath
//立即刷新环境变量生效
source /etc/profile

单用户设置GOPATH环境变量

vi   ~/.bash_profile

#添加如下 目录可以自己灵活修改
export GOPATH=/home/user/local/soft/go/gopath
//立即刷新环境变量生效
source vi   ~/.bash_profile

注意:这是在linux上开发go程序才需要的,如果只是生产运行程序的话是不需要任何东西的,直接运行二进制可执行程序包即可,他所有的依赖全部打进包中了。

如果是在windows下的cmd,dos窗口运行相关的go命令和程序,则需要在windows的【此电脑】–>【右键】–>【属性】–>【高级系统设置】–>【环境变量】-【新建一个系统变量】–>【变量名为GOPATH,路径为你自己指定的自定义文件夹】(如果是在IDEA中开发,不需要在此配置环境变量,只需要在IDEA中配置好GOPATH的目录设置即可)

Go的开发环境搭建

其实,安装教程,从官网直接看就好了。非常简单,不存在任何的疑难点。

与Java相同,下载,安装,配置环境变量

Go与Java的文件结构对比

1).go文件结构模板
//主程序必须是写成main包名
package main

//导入别的类库
import "fmt"    

//全局常量定义
const  num = 10
  
//全局变量定义
var name string = "li_ming"

//类型定义
type P struct {

}
  
//初始化函数
func init() {

}

//main函数:程序入口
func main() {
	fmt.Printf("Hello World!!!");
}
2).Java文件结构
//包名
package my_package;
       
//导入包中的类
import java.io.*;

public Class MainTest{ 
	//main方法:程序入口
    public void static main(String[] args) {
	
	}
}
//people类
Class People {
	//成员变量
	public String name;
	public int age;
            
	//成员方法
	public void doSomething() {
	            
	}
    
}

Go与Java的集成开发环境

1).Go的集成开发环境
最常用的有三种:

Visual Studio Code(VS Code) 微软开发的一款Go语言开发工具。

LiteIDE 是国人开发的Go语言开发工具。

GoLand 这个非常好用,和Java中的IDEA是一家公司。(推荐使用)
2).Java的集成开发环境
MyEclipse,Eclipse(已过时)。

IntelliJ IDEA(大多数用这个)。

总结

相信,又掌握了不少快速的转型需要的点。能够节省时间去学一门新东西,就得从总结中来,到总结中去。

好了,今天就这样,明天继续聊,更多的细节。