Java versions

versions1Java5Features

Path
pkg2versions/versions1Java5Features.java
Package
pkg2versions
Study order
1
Run
Single-file source launch
Command
java pkg2versions/versions1Java5Features.java
Version in the filename
Java 5
Example
Java 5 example
Requires
Java 5
Lesson
Back to the chapter

There is no in-browser runner. This is the file from the curriculum, unchanged.

pkg2versions/versions1Java5Features.java
1package pkg2versions;2 3/*4 * versions1Java5Features.java  (J2SE 5.0, 2004)5 * ------------------------------------6 * Landmark release that modernized the language.7 *8 * FEATURES & WHY:9 *  - Generics        : compile-time type safety, removes casts.10 *  - Enhanced for    : cleaner iteration.11 *  - Autoboxing      : seamless primitive <-> wrapper conversion.12 *  - Varargs         : variable-length argument lists.13 *  - Enums           : type-safe constants (vs int constants).14 *  - Annotations     : metadata (@Override etc.).15 *  - Static import   : import static members.16 */17import static java.lang.Math.PI;18import java.util.*;19 20public class versions1Java5Features {21 22    enum Level { LOW, MEDIUM, HIGH }                 // enum23 24    static <T> List<T> listOf(T... items) {          // generics + varargs25        return new ArrayList<T>(Arrays.asList(items));26    }27 28    public static void main(String[] args) {29        // Generics + enhanced for30        List<String> names = listOf("Alice", "Bob", "Cara");31        for (String n : names) System.out.print(n + " ");32        System.out.println();33 34        // Autoboxing: int -> Integer automatically inside the List35        List<Integer> nums = listOf(1, 2, 3);36        int sum = 0;37        for (int n : nums) sum += n;                 // unboxing38        System.out.println("sum=" + sum);39 40        // Enum41        for (Level l : Level.values()) System.out.print(l + " ");42        System.out.println();43 44        // Static import45        System.out.println("PI=" + PI);46    }47}