Abstract: Many software developers are using the Java language as the language of choice on many applications. This is due to the effective use of the object-oriented (OO) paradigm to develop large software projects and the ability of the Java language to support the increasing use of web technologies in business applications. The recent release of the Java version 5.0 has further increased its popularity due to the inclusion of new features that exist in other OO languages. The transition from Java 1.4.x to Java 1.5.x has provided the programmer with more flexibility when implementing programs in Java. In this paper we present the first study that investigates how the characteristics of a class are combined, thereby providing feedback on how the features provided by Java 1.4.x or earlier and Java 1.5.x or earlier are currently used. The study uses a taxonomy of OO classes that provides a mechanism to catalog any class written in Java into one of a finite set of groups. A detailed description on how we enumerated all the possible groups of Java classes is also provided. Using TaxTOOLJ (a Taxonomy Tool for the Object-Oriented Language Java) we cataloged over 155k classes from a cross-section of Java applications written in Java 1.4.x and Java 1.5.x to identify the distribution of groups used by developers. We use the data from the study to create prediction models that would allow developers to estimate the number of different groups of classes, fields and methods that are expected to be generated for large Java applications. This knowledge would be of significant benefit to aid developers in testing and maintenance activities during the software process.