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。

目录
相关文章
|
5天前
|
Java
PTA帅到没朋友(Java语言)+测试点
PTA帅到没朋友(Java语言)+测试点
11 1
|
5天前
|
机器学习/深度学习 算法 Java
全排列(分治)(Java语言 +全排列模板)
全排列(分治)(Java语言 +全排列模板)
10 2
|
5天前
|
Java
阶乘末尾0的个数(Java语言+思路优化)
阶乘末尾0的个数(Java语言+思路优化)
8 1
|
5天前
|
Java C++
社交集群(pta) (并查集) Java语言
社交集群(pta) (并查集) Java语言
11 3
|
5天前
|
存储 Java
ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
ZigZagging on a Tree二叉树蛇形层次遍历(Java语言)
10 1
|
5天前
|
Java
Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
Tree Traversals Again(Java语言)(先序和中序创建二叉树)(遍历树)
13 4
|
1天前
|
安全 Go 调度
Go语言中的并发编程
Go语言自带了强大的并发编程能力,它的协程机制可以让程序轻松地实现高并发。本文将从并发编程的基础概念出发,介绍Go语言中的协程机制、通道和锁等相关知识点,帮助读者更好地理解并发编程在Go语言中的实践应用。
|
2天前
|
IDE Go 开发工具
【GO基础】2. IDEA配置Go语言开发环境
【GO基础】2. IDEA配置Go语言开发环境
|
2天前
|
Ubuntu Unix Linux
【GO基础】1. Go语言环境搭建
【GO基础】1. Go语言环境搭建
|
3天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf