Post

Java8 to Java17

Java8 to Java17

A categorized list of all Java and JVM features since JDK 8 to 21

Record Classes, terse syntax to define immutable DTOs.

jdk16

1
2
3
4
5
record Point(int x, int y) { }

var point = new Point(1, 2);
point.x(); // returns 1
point.y(); // returns 2
Pattern Matching for instanceof to eliminate the need for explicit casts after a type check.

jdk16

1
2
3
if (obj instanceof String s && s.length() > 5) {
  System.out.println(s);
}
Text Blocks

jdk15

1
2
3
4
5
6
String html = """   
               <html>
                 <body>
                 </body>
               </html>
              """;

Switch Expressions

jdk14

1
2
3
4
5
6
7
8
int numLetters = switch(day) {
  case MONDAY -> 6;
  default -> {
    String s = day.toString();
    int result = s.length();
    yield result;
  }
}

#####

This post is licensed under CC BY 4.0 by the author.