02年世界杯韩国黑哨_曲棍球世界杯 - guanchafang.com

Groovy 和 Java 的区别
2025-07-10 19:00:28

Groovy 和 Java 的区别

Groovy 是一种强大的、可选类型的动态语言,用于在其语法类似于 Java 的 Java 平台上开发应用程序。它的打字规则是强大的、静态的和动态的。Groovy 最好的地方在于,由于它扩展了 JDK,它接受了 Java 代码。Groovy 既可以用作编程语言,也可以用作脚本语言。Groovy 是 Java 的超集,这意味着 Java 程序将在 Groovy 环境中运行,反之亦然,也可能不可能。而 Java 是强类型和静态类型的编程语言。

1. 默认导入 :

在 Groovy 中,默认会导入一些通用包和类:

java.io.*

java.lang.*

java.math.BigDecimal

java.math.BigInteger

java.net.*

java.util.*

groovy.lang.*

groovy.util.*

在 Java 中,默认情况下仅导入 java.lang.* 包。

2. 额外关键词:

as , define , trait 这些是 Groovy 中的额外关键字。不能将此关键字用作变量名。

3. 默认访问修饰符:

在 Java 中,默认访问修饰符是包,即如果没有为字段、方法或类指定访问修饰符,它就会变成包私有。

在 Groovy 中,它默认是公共的。

4. Getter 和 Setter:

在 Java 中,需要为字段提供 getter 和 setter 方法,特别是如果遵循 Java Beans 命名约定并使用工具和库,它们使用反射来动态访问和改变 bean 属性。在 Groovy 中,为类成员自动生成 getter 和 setter。

5. 点分隔符:

在 Java 中,我们使用点运算符 ( . ) 来访问类的属性

Groovy 还支持点运算符,但与 Java 调用不同的是,它实际上通过 getter 和 setter,它们在 Groovy 中自动生成。

在 Groovy 中,分号 (;) 是可选的,仅当您喜欢或想要在一行中编写多个语句时才使用它们。

for循环:

与在大多数任务中使用 for 循环一样,在 Groovy 中声明 for 循环要容易得多,可以将 for 循环声明为:

“`java for(j in 0..4){ print j }

0.upto(3) { print "it" }

4.times{ print "it" }



在Java中的写法:

“`java

for(int i=0;i<=5;i++){

System.out.println(i);

}

8. 安全导航操作员:

在 Java 中必须执行一些操作来检查空对象,以避免空指针异常。

String str = null;

if(str != null){

System.out.println(str.reverse());

}

但是在 Groovy 中,可以直接执行以下操作:

println str.reverse()

9. main() 方法:

在 Java 中,需要 main 方法来使类可执行

在 Groovy 中,不需要它。由于 Groovy 是一种脚本语言,因此每个程序都会自动有一个名为 Script 的包装类。

10.布尔求值:

Groovy 自动将表达式计算为布尔值。

def str = “test”

if(str){ println str }

11. 数组声明:

如果要在 Java 中创建字符串数组,则必须使用花括号 {} 。

在 Java 中:

String[] testArray = {"A", "B", "C"};

而在 Groovy 中,可以使用方括号: [] 。在 Groovy 中:

String[] testArray = ["A", "B", "C"]

Java和Groovy的比较区别

Java

Groovy

它是在JDK上开发并在JVM上运行的

编译为JVM字节码,兼容Java平台

它被用作编程和面向对象的语言

它被用作编程和脚本语言

Java 默认访问修饰符包

Groovy 默认访问修饰符 public

在 Java 中,您需要为字段提供 getter 和 setter 方法,特别是如果遵循 Java Beans命名约定

在 Groovy 中,会为类成员自动生成 getter 和 setter

在 Java 中,分号是强制性的

在 Groovy 中,分号是可选的

Java中默认只导入 Java.lang.* 包

在Groovy中默认导入常用包

Java 具有原始数据类型和包装类来隐式或显式执行装箱和拆箱

在 Groovy 中,一切都是对象并且仅使用对象,因此没有自动装箱或拆箱的概念

Java 需要类内部的 main 方法来运行程序

Groovy 不需要任何 main 方法或方法的入口点来运行类或任何程序

最新文章