four signed integer data type sizes (byte, short, int, long); first to use Unicode; uses static length strings; primitive ordinal types - int, char, boolean; enums introduced in 2004 (implicitly subclasses of Enum, can have data members, constructors, and methods, inherit toString, values, and ordinal methods), no expression of any other type can be assigned to enum vars; all the array elements must be of the same type (bc ptrs are restricted to pointing to one type), but also has generic arrays in 5.0 version; enforces subscript range checking; all arrays are objects (and therefore heap-dynamic); array init: int [] list = {1,2,3,4}; string array init: String[] names = {"bob", "bill", "boop"}; associative arrays are supported by a class library; all class instances are referenced by reference variables; this is the only use of reference variables for this language; no dangling references bc class instances are implicitly deallocated