新语言你确定,不比较下优缺点么

259 阅读5分钟

前言

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

评论的内容是这样的:

图片

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

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

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

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

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

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

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

好,不废话,开始!!

Go社区

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

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

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

Go的中文社区:studygolang.com/

Go的中文文档: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(大多数用这个)。

总结

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

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