Record — language feature (Java 14+). Lombok @Data — annotation processing (library).
Record:
name() not getName()).1public record Person(String name, int age) {}23// Usage4Person p = new Person("Alice", 25);5System.out.println(p.name()); // Alice6System.out.println(p.age()); // 25
Lombok @Data:
get/set prefix.1@Data2@AllArgsConstructor3public class Person {4 private String name;5 private int age;6}78// Usage9Person p = new Person("Alice", 25);10System.out.println(p.getName()); // Alice11System.out.println(p.getAge()); // 25
Performance considerations:
When to use which: