CLDC is a configuration for small, resource-constrained devices. It defines a set of core Java APIs and requires devices to have between 128-512KB memory, support 16-32 bit processors, and have intermittent network connectivity. The CLDC specification also defines requirements for the Java virtual machine, including lack of support for floating point numbers, native methods, and weak references. It includes core Java packages for system functions, data types, collections, I/O, dates, exceptions and internationalization.