This document discusses data types and flow control in Java. It covers the main data type categories of primitives and objects. Primitives are simple values that can be assigned literals, while objects are more complex and can contain other variables and functions. The 8 primitive types - char, short, int, long, float, double, boolean, byte - are described along with their allowed values. Objects include over 4000 predefined types as well as custom types a programmer can define. Arrays, enums, and interfaces are also covered as subtype categories. Flow control structures like if/else, switch, while, do/while, and for loops are listed, and functional style flow control available since Java 8 is briefly mentioned. Demo code is provided