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