Java classes provide templates for objects with methods and fields. Classes can contain static methods and fields that are shared across all instances, as well as instance methods and fields that are unique to each object. Arrays are objects that hold multiple elements of a single type, accessed via integer indices starting from 0. Comments provide documentation for code via javadoc comments or single-line comments. Constructors initialize new objects and can overload based on argument types. Methods define reusable blocks of code that may return values or not.