Go语言学习过程中,你需要知道的Java与Go的基础对比

简介: Go语言学习过程中,你需要知道的Java与Go的基础对比

前言

周一了,不知道大家都忙么。有没有好好地学习呢?嘻嘻,今天,我抽时间,又把Java与Go之间进一步做了对比。

那么,我们就来聊一下,今天对比的部分内容。

常用包

众多周知,开发过程中,更多的时候,在使用开发包来辅助开发。那么,具体的情况是什么样子的呢?

GO

Java
IO流操作 bufio/os java.lang.io
字符串操作 strings java.lang.String
容器 container(heap/list/ring) java.lang.Collection
sync juc
时间 time java.time/java.lang.Date
底层Unsafe unsafe unsafe类
算数操作 math java.math

我们可以从以上表格看到常用操作的包明细。

想要学习更多Go中文API文档,Go的API包文档

Go的常用基础数据类型和Java的基础数据类型对比

Go中的常用基础数据类型

image.png

Go中派生数据类型

image.png

Go和Java的变量对比

Go的变量
package main
import(
  //包含print函数
  "fmt"
)
func main() {
  //var 变量名 变量类型 = 变量值
  var name string = "xiao_li"
  //方法内部可以直接使用 【 变量名 := 变量值 】 赋值,方法外不可以
  name2:="xiao_hong"
  fmt.Println("name = ",name)
  fmt.Println("name2 = ",name2)
}

Java的变量

public class test {
   public static void main(String[] args) {
       //变量类型 变量名 = 变量值
       String name = "xiao_li";
       int i = 10;
       System.out.println("name ="+name);
       System.out.println("i ="+i);
  }
}

Go和Java的常量对比

Go的常量

Go中的常量和Java中的常量含义有一个本质的区别:Go中的常量是指在编译期间就能确定的量(数据),而java中的常量是指被赋值一次后就不能修改的量(数据)。所以两者不一样,因为Java中的常量也是JVM跑起来后赋值的,只不过不允许更改;Go的常量在编译后就确实是什么数值了。

package main
import(
  //包含print函数
  "fmt"
)
func main() {
  //const 常量名 常量类型 = 常量值   显示推断类型
  const name string = "const_li_ming"
  //隐式推断类型
  const name2 ="const_xiao_hong"
  fmt.Println("name = ",name)
  fmt.Println("name2 = ",name2)
}

Java的常量

public class test {
   //【访问修饰符】 【静态修饰符】final修饰符   常量类型   常量名 = 常量值;
   public static final String TAG = "A";    //一般设置为static静态
   public static void main(String[] args) {
       System.out.println("tag= "+TAG);
  }
}

Go与Java的赋值对比

Go的赋值

Go方法内的赋值符号可以用  := ,也可以用 =,方法外只能用 = 。

package main
import(
  //包含print函数
  "fmt"
)
//方法外只能用 = 赋值
var my_name  string = "my_name"
var my_name2 = "my_name2"
//my_name3:="my_name3"   不在方法内,错误
func main() {
  fmt.Println("name = ",my_name)
  fmt.Println("name2 = ",my_name2)
}

Go支持多变量同时赋值:

package main
import(
  //包含print函数
  "fmt"
)
func main() {
  //多变量同时赋值
  var name,name2 = "li_ming","xiao_hong"
  fmt.Println("name = ",name)
  fmt.Println("name2 = ",name2)
}

Go丢弃赋值:

package main
import(
   //包含print函数
   "fmt"
)
func main() {
   //丢弃赋值    把 1和2丢弃 只取3
   //在必须一次取两个以上的值的场景下,又不想要其中一个值的时候使用,比如从map中取key,value
   var _,_,num = 1,2,3
   fmt.Println("num = ",num)
}

Java的赋值

public class test {
    public static void main(String[] args) {
        //直接用 = 赋值
        String name = "li_ming";
        int i = 10;
        System.out.println("name ="+name);
        System.out.println("i ="+i);
    }
}
总结

跟着之前学习Java的脚步,我们一步步的分析,Go与Java的对比。

作为一名Javaer转型Goer 其实是so easy。

目录
相关文章
|
1天前
|
存储 编译器 Go
Go语言学习12-数据的使用
【5月更文挑战第5天】本篇 Huazie 向大家介绍 Go 语言数据的使用,包含赋值语句、常量与变量、可比性与有序性
35 6
Go语言学习12-数据的使用
|
4天前
|
Java Go
Go语言学习11-数据初始化
【5月更文挑战第3天】本篇带大家通过内建函数 new 和 make 了解Go语言的数据初始化过程
17 1
Go语言学习11-数据初始化
|
6天前
|
JavaScript 前端开发 Go
Go语言的入门学习
【4月更文挑战第7天】Go语言,通常称为Golang,是由Google设计并开发的一种编程语言,它于2009年公开发布。Go的设计团队主要包括Robert Griesemer、Rob Pike和Ken Thompson,这三位都是计算机科学和软件工程领域的杰出人物。
14 1
|
6天前
|
Go
|
14天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
15天前
|
Java 大数据 Go
Go vs Java:在大数据处理领域的性能对比
Go与Java在大数据处理中各有特点。Go启动快,内存占用少,静态类型及并发模型(goroutine和channel)使其在并发性能上有优势。Java虽然启动慢,JVM内存占用高,但拥有丰富的生态系统和并发工具。代码示例展示了Go的goroutine和Java的线程池处理大数据的场景。在性能上,Go可能更优,但Java的跨平台性和生态广度使其仍被广泛应用。
|
16天前
|
网络协议 物联网 Java
Go与Java:在物联网领域的适用性分析
本文对比分析了Go和Java在物联网领域的适用性。Go语言因其轻量级、高效和并发特性,适合资源受限的物联网设备,特别是处理并发连接和数据流。Java则凭借跨平台性、丰富的生态系统和企业级应用能力,适用于大型物联网系统和复杂业务场景。两者在物联网领域各有优势,开发者可根据项目需求选择合适的语言。
|
2月前
|
存储 安全 Java
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
40 1
|
5月前
|
Java 编译器 C语言
Java学习 7.Java-方法的使用
Java学习 7.Java-方法的使用
48 0
|
11月前
|
Java API
【Java新特性学习 三】JDK8: 语言新特性之方法引用
【Java新特性学习 三】JDK8: 语言新特性之方法引用
77 0