By the time of Exam 1, you should be able to:

Java Fundamentals

  1. Be aware of the memory requirements and value ranges for primitive types (you don't have to memorize precise values, but you must know that a byte occupies a single byte of memory, while a short occupies 2 bytes, etc, and that the "wider" types can always hold any of the values that a "narrower" type can hold).

  2. Interpret code in which automatic type conversions are present

  3. Use type casting to explicitly convert data types

  4. Explain the risks associated with explicit type casting

  5. Use mathematical operations to manipulate character values.

  6. Use increment and decrement operators

  7. Explain how pre- and post- increment/decrement operators differ in functionality

  8. Evaluate mathematical expressions involving pre- and post-increment/decrement operators

  9. Use short-circuit evaluation to avoid divide-by-zero and null-pointer exceptions

  10. Explain the use of the final keyword, when applied to attributes, methods, and classes

UML

  1. Read and understand UML class and sequence diagrams.

  2. Implement source that meets the design specified in a UML class and sequence diagram.

  3. Draw a UML class diagram illustrating the relationships between two or more classes, using the relationships with appropriate association connectors indicating generalization, exclusive composition, shared aggregation, or dependency.

  4. Define aggregation.

  5. Define composition.

Arrays and ArrayLists

  1. Create and use an array or ArrayList to store primitive types (e.g. ints, chars, booleans, doubles,...)

  2. Use an array or ArrayList to store object types (String, Person,...)

  3. Iterate through an array or ArrayList, either setting the an element to a given value, or getting an element's current value

  4. Determine the size of an array from the length attribute, or the size of an ArrayList via the size() method

  5. Pass an array or ArrayList as an argument to a method

  6. Create and return an array or ArrayList from a method

  7. Describe the error encountered when accessing an array beyond its boundaries

  8. Apply the ArrayList methods, size(), add(), get(), and remove()

Inheritance and Polymorphism

  1. Use inheritance in creating classes.

  2. Explain and use the protected modifier in defining an inheritance hierarchy.

  3. Explain why a class with a superclass other than object must make an explicit call to a constructor of the superclass.

  4. Explain the concept of polymorphism.

  5. Interpret code that uses inheritance and polymorphism and determine its output on execution.