golang和Java对比(整体和语法对比)
在整体上,Go 和 Java 是非常不同的。Go 是一种静态类型的编译语言,而 Java 是一种动态类型的,运行时自动管理内存的编程语言。以下是两者在语法上的一些关键差异:
声明变量:
Go:
var name type或name := valueJava:
type name = new type();或Type name = new Type(value);函数:
Go:
func name(param type) returnType { ... }Java:
public returnType name(paramType param) { ... }控制结构:
Go:
if,for,switch和selectJava:
if,for,switch,while, 和do-while并发:
Go: 使用
goroutines和channelsJava: 使用
Threads和wait()/notify()或Concurrency Utilities接口:
Go: 使用
interface{}表示空接口,其他接口只是方法签名的集合Java: 使用
interface定义方法签名的集合,还可以有默认实现包管理:
Go: 使用
import并且不需要.class扩展名Java: 使用
import并且需要.class扩展名指针:
Go: 显式使用
*获取变量地址Java: 使用
*或&获取地址,但是自动管理内存继承:
Go: 使用
type Name struct { ... }和type NewName NameJava: 使用
extends关键字异常处理:
Go: 使用
defer,panic, 和recoverJava: 使用
try,catch, 和finally注释:
Go:
//单行注释,/* ... */多行注释Java:
//单行注释,/* ... */多行注释,/** ... */文档注释
这只是一些关键的差异,Go 和 Java 在库支持、编译工具、分布式系统支持等方面还有很多不同。
评论已关闭