Java records are a concise way to define classes meant to be immutable data carriers. They automatically generate constructors, accessors, equals, hashCode, and toString methods. For example, a Product record in an e-commerce app might hold a name and price, reducing boilerplate code.