Getting started with Java™ Understand what Java is | Understand the role of the JVM | Understand the development steps | Which Tools to use | Understand how to setup your development environment | Using the JDK | Use the command line compiler to compile a Java class| Use the command line Java interpreter to run a Java application class | Correctly set up the CLASSPATH environment variable to allow the compiler and interpreter to run correctly
Getting Started with the Java™ Language Write a class that does not explicitly extend another class | Define instance fields for a class | Implement a main method to create an instance of the defined class | Adding Methods to the Class | Write a class with accessor methods to read and write private instance fields | Write a constructor to initialize an instance with data | Write a constructor that calls other constructors of the class to benefit from code reuse | Use the this keyword to distinguish local variables from instance fields | List the four arithmetic operators List the three operators to increment and decrement numbers | List the six comparison operators | List the two logical operators | Name the return type of the comparison and logical operators | Use one of the increment operators to increment an integer | Write a for loop that can iterate a specified number of times | Create an instance of the String class | Test if two String objects are equal | Test if two String objects are the same object | Get the length of a String object | Parse a String object for its token components | Perform a case-insensitive equality test | Build up a String object using a StringBuffer object | Build up a String object using a StringBuilder object | Understand the difference between the StringBuffer and StringBuilder | Convert between String and StringBuffer/StringBuilder | Utility Classes | Convert String representations of primitive numbers into their corresponding wrapper | Convert String representations of primitive numbers into their primitive types | Appreciate auto unboxing a wrapper to its primitive type | Use the Date class to get the current time and date | Use the Date class to determine if one Date is earlier or later than another | Using Arrays | Declare an array reference | Allocate an array | Initialize the entries in an array | Appreciate the extended for-loop for iterating over an array
Session: Essential Java™ Programming
Java™ Packages | Use the package keyword to define a class within a specific package | Explain the effects of the four levels of accessibility | Use the import keyword to declare references to classes in a specific package | Use the standard type naming conventions when creating packages, classes, and methods | Correctly execute a Java application class that is defined in a package | Fields and Variables | Initialize instance fields to default values | Distinguish between instance fields and method variables within a method | Initialize method variables prior to use | Explain the difference between the terms field and variable | List the default values for instance fields of type String, int, double, and boolean | Name the keyword used to create constants in Java | Enums, Static Methods and Fields | Create static fields in a class | Explain one use of static fields | Create static methods in a class | Explain one benefit of static fields | Understand the concept of a static import | Appreciate enums | Explain the syntax used to reference static fields and methods
Session: Advanced OO Programming
Specializing in a Subclass | Construct a class that extends another class | Correctly implement equals and toString | Write constructors that pass initialization data to the parent constructor as appropriate | Use instanceof to verify the class type of an object reference | Override subclass methods and use the super keyword to leverage behaviors in the parent | Safely cast references to a more refined type | Inheritance and Polymorphism | Write a subclass with a method that overrides a method in the superclass | Group objects by their common supertype | Utilize polymorphism by correctly invoking subclass method implementations through superclass references | Safely cast a supertype reference to a valid subtype reference | Use the final keyword on methods and classes to prevent overriding through subclassing | Interfaces and Abstract Classes | Define supertype contracts using interfaces | Define supertype contracts using abstract classes | Implement concrete classes using interfaces | Implement concrete classes using abstract classes | Explain one advantage of interfaces over abstract classes | Explain one advantage of abstract classes over interfaces | Generics | Understand what generics are | Understand how to create generic classes Understand how te create generic methods | Understand generic wildcards Understand how to use generics
Exceptions
Handling Exceptions | Define a try/catch block that allows methods that throw exceptions to be called | Correctly implement try/catch blocks for methods which throw multiple exceptions | Name the exception supertype which is not checked for by the compiler | Correctly implement a method which throws exceptions | Correctly override a method which throws exceptions | Throwing and Developing Exceptions | Understand how How to throw exceptions | Define your own application exceptions | Introduce the assert keyword
Collections
Understand the different types of collections in the J2SE | Understand the difference between collection interfaces and collection implementations | For each collection type, understand its usage | Use ArrayList to maintain a list of data elements | Use Iterator to search elements of a collection | Use methods of List to access sublists | Appreciate the extended for-loop for iterating over a collections | Appreciate how generics ease the development of (type-safe) collection | Sort and shuffle elements in a list | Create read-only collections from standard | Write a Comparator to provide custom sorting | Create your own collection class
Multithreading
Create and run a threaded class using both Thread and Runnable | Explain one advantage of implementing Runnable over subclassing Thread | Use thread synchronization to guarantee data integrity in a multithreaded application | Use object synchronization to allow multiple threads to work cooperatively on a shared set of data
Coding Standards
JavaDoc | Understand how to document your code | Understand the different JavaDoc tags | create HTML-based Java API documentation | Jar-files | Introduce the different types of jar-files | Create a jar-file | Create a Jar-packed application
JavaBeans
Programming JavaBeans | Write a Java class that provides encapsulation according to the naming principles of JavaBeans™ | Write a Java class that can register for and receive events | Write a Java class that can manage event listeners and send events to its listeners
Graphical User Interfaces
Containers and Layout Managers | Create a window frame | Nest panels within a frame for better layout control | Create and display buttons in a panel | List two component attributes that are controlled by a layout manager | Set the layout manager for a container | Place components in a panel using BorderLayout, GridLayout, and FlowLayout | Name one advantage of each of the layout managers | Create panels with titles | Essential graphical components | Place text fields, text areas, and buttons in a graphical application | Handle action events from a button | Write code within an event handler to manipulate the content of text fields and text areas | Place check boxes, radio buttons, and combo boxes in a graphical application | Create a combo box consisting of a list of string elements | Create radio buttons in a radio button group | Create a menu for a frame containing menu items, sub-menus, check boxes, and radio buttons | Advanced Layout | Use GridBagLayout to create forms with properly aligning and resizing labels, text fields, and text areas | Provide scroll bars for components | Add multiple components to a container, separated by splitter bars | Create tabbed panels that contain other components and containers
I/O
Read/Write byte data into a buffer | Read/Write character data to a buffer | Read/Write objects to a buffer | Lesson: File access | Create a file in the file system | Create a directory in the file system | List the contents of a directory | Read and write text to a file | Loading Resource Files |
List two advantages of using resources instead of files | Write code to use resources
JDBC
Java™ JDBC™ Data Access API | Connect to a database using JDBC | Execute a statement against a database that returns a ResultSet | Extract multiple rows of data from a ResultSet, where each column value is represented as a String
Appendix: Object Oriented Concepts in Java™
Conventional vs Object Oriented Programming | List the two features contained within an object | Name the OO component that provides the blueprint for creating object instances | Name the OO component that provides behaviors to an object | Name the term used to expose the capabilities of an object | Inheritance, Abstraction, and Polymorphism | Provide one benefit of encapsulation | Name an example of where inheritance cannot be used in place of aggregation, and provide one clear example showing this to fail | List two reasons for using inheritance | Give one example of a benefit of using polymorphism
|