S.No. | Factor | Groovy | Java |
---|---|---|---|
1. | Default imports | The java.io.*, java.lang.*, java.math.BigDecimal, java.net.*, groovy.lang.*, groovy.util.*, java.util.* and java.math.BigInteger are some general purpose classes and packages which are imported by default. | The Java.lang.* is the only package that is imported by default in Java. |
2. | Keywords | In the comparison of Java, Groovy has three extra keywords, i.e., as, defin, and trait. | In Java, we cannot use this as a keyword. |
3. | Access modifier | The public is the default access modifier in Groovy. | Package-private is a default access modifier in Java. |
4. | Getter and setter | Groovy generates getter and setter automatically for the class members. | Java doesn't provide getter and setter automatically for the class members. So, we need to define getter and setter methods for class members. |
5. | Dot operator | Groovy also supports dot operator but unlike Java, calls actually go through getters and setters, which are automatically generated in Groovy. | The dot operator is used to access data members of a class. |
6. | Semicolons | Unlike Java, the semicolon is not required to use. It is only used to write more than one statement in a single line. | In Java, the semicolon is required to use for the statements. |
7. | For loop | In comparison to Java, the declaration of for loop is much easier. We declare for loop in the following way: for(j in 0..4){ print j }
0.upto(3){ print "$it" } 4.times{ print "$it" } |
In Java, we declare for loop in the following way: for(int I = 0; I <= 5; i++){ System.out.println(i); } |
8. | Safe Navigation Operator | In order to avoid the null pointer exception, we don't need to perform an operation to check the null object. | In Java, we need to perform operations to check whether the object is null or not to avoid null pointer exceptions. |
9. | Use of main() method | In groovy, there is no need to define the main() method because it is also a scripting language and there is always have Script class(Wrapping class) for each program. | In Java, we need to define the main() method to execute the class. |
10. | Boolean evaluation | In Groovy, the expression is automatically evaluated as Boolean. | In Java, the expression doesn't evaluate automatically as Boolean. |
11. | Array declaration | In groovy, we use curly brackets("{}") for declaring an array. String[] test1 = ["A", "B", "C"] |
In Java, we use square brackets("{}") for declaring an array. String[] test1 = ["A", "B", "C"] |
12. | Boxing and Unboxing | There is no concept of autoboxing and unboxing because here, everything is the object. | In order to perform boxing and unboxing, Java has primitive data types and the concept of the wrapper class. |