You read files such as word-processing documents from your computer, workstation, or Mac. If you wrote a word-processing application in Java, it would look at documents from the local disk and store it to the local disk. Every object has a type. The type of an object is its class. A class is a description of what constitutes that object and what you can ask it to do.
Different classes represent different things in programming.
And that's that. There's no reasonable competition. As far as a cross-platform set of libraries, it's more comprehensive than any other class library that you could purchase anywhere. Java's new class structure has runtime type checking. When you're programming, Java interpreters will recognize if it's the wrong type.