Java Programming
JAVA PROGRAMMING (5 DAYS)
START (MM/DD/YY) | END | DAYS | TIME | LOCATION |
---|---|---|---|---|
APRIL 2020 | ||||
04/03/20 | 04/07/20 | M,T,W,T,F | 10:00 - 16:00 | London |
04/10/20 | 04/14/20 | M,T,W,T,F | 10:00 - 16:00 | London |
04/20/20 | 04/21/20 | M,T,W,T,F | 10:00 - 16:00 | London |
04/24/20 | 04/28/20 | M,T,W,T,F | 10:00 - 16:00 | London |
04/08/20 | 04/29/20 | Saturday | 13:00 - 19:00 | London |
MAY 2020 | ||||
05/01/20 | 05/05/20 | M,T,W,T,F | 10:00 - 16:00 | London |
05/08/20 | 05/12/20 | M,T,W,T,F | 10:00 - 16:00 | London |
05/15/20 | 05/19/20 | M,T,W,T,F | 10:00 - 16:00 | London |
05/22/20 | 05/26/20 | M,T,W,T,F | 10:00 - 16:00 | London |
05/06/20 | 05/27/20 | Saturday | 13:00 - 19:00 | London |
JUNE 2020 | ||||
06/05/20 | 06/09/20 | M,T,W,T,F | 10:00 - 16:00 | London |
06/12/20 | 06/16/20 | M,T,W,T,F | 10:00 - 16:00 | London |
06/19/20 | 06/23/20 | M,T,W,T,F | 10:00 - 16:00 | London |
06/26/20 | 06/30/20 | M,T,W,T,F | 10:00 - 16:00 | London |
06/03/20 | 06/24/20 | Saturday | 13:00 - 19:00 | London |
JULY 2020 | ||||
07/03/20 | 07/07/20 | M,T,W,T,F | 10:00 - 16:00 | London |
07/10/20 | 07/14/20 | M,T,W,T,F | 10:00 - 16:00 | London |
07/20/20 | 07/21/20 | M,T,W,T,F | 10:00 - 16:00 | London |
07/24/20 | 07/28/20 | M,T,W,T,F | 10:00 - 16:00 | London |
07/31/20 | 08/04/20 | M,T,W,T,F | 10:00 - 16:00 | London |
07/08/20 | 07/29/20 | Saturday | 13:00 - 19:00 | London |
AUGUST 2020 | ||||
08/07/20 | 08/11/20 | M,T,W,T,F | 10:00 - 16:00 | London |
08/14/20 | 08/18/20 | M,T,W,T,F | 10:00 - 16:00 | London |
08/21/20 | 08/25/20 | M,T,W,T,F | 10:00 - 16:00 | London |
08/28/20 | 09/01/20 | M,T,W,T,F | 10:00 - 16:00 | London |
08/05/20 | 08/26/20 | Saturday | 13:00 - 19:00 | London |
SEPTEMBER 2020 | ||||
09/04/20 | 08/09/20 | M,T,W,T,F | 10:00 - 16:00 | London |
09/11/20 | 09/15/20 | M,T,W,T,F | 10:00 - 16:00 | London |
09/18/20 | 09/22/20 | M,T,W,T,F | 10:00 - 16:00 | London |
09/25/20 | 09/29/20 | M,T,W,T,F | 10:00 - 16:00 | London |
09/09/20 | 09/30/20 | Saturday | 13:00 - 19:00 | London |
OCTOBER 2020 | ||||
10/02/20 | 10/06/20 | M,T,W,T,F | 10:00 - 16:00 | London |
10/09/20 | 10/13/20 | M,T,W,T,F | 10:00 - 16:00 | London |
10/16/20 | 10/20/20 | M,T,W,T,F | 10:00 - 16:00 | London |
10/23/20 | 10/27/20 | M,T,W,T,F | 10:00 - 16:00 | London |
10/30/20 | 11/03/20 | M,T,W,T,F | 10:00 - 16:00 | London |
10/07/20 | 10/28/20 | Saturday | 13:00 - 19:00 | London |
NOVEMBER 2020 | ||||
11/06/20 | 11/10/20 | M,T,W,T,F | 10:00 - 16:00 | London |
11/13/20 | 11/20/20 | M,T,W,T,F | 10:00 - 16:00 | London |
11/20/20 | 11/24/20 | M,T,W,T,F | 10:00 - 16:00 | London |
11/27/20 | 12/01/20 | M,T,W,T,F | 10:00 - 16:00 | London |
11/04/20 | 11/25/20 | Saturday | 13:00 - 19:00 | London |
DECEMBER 2020 | ||||
12/04/20 | 12/08/20 | M,T,W,T,F | 10:00 - 16:00 | London |
12/11/20 | 12/15/20 | M,T,W,T,F | 10:00 - 16:00 | London |
12/18/20 | 12/22/20 | M,T,W,T,F | 10:00 - 16:00 | London |
12/25/20 | 12/29/20 | M,T,W,T,F | 10:00 - 16:00 | London |
12/09/20 | 12/30/20 | Saturday | 13:00 - 19:00 | London |
Course Outline
Introduction to Java Programming
– Describe the key features of Java technology
– Write, compile, and run a simple Java technology application
– Describe the function of the Java Virtual Machine (JVM)
– Define garbage collection
– List the three tasks performed by the Java platform that handle code security
Object-Oriented Programming
– Define modeling concepts: abstraction, encapsulation, and packages
– Discuss why you can reuse Java technology application code
– Define class, member, attribute, method, constructor, and package
– Use the access modifiers private and public as appropriate for the guidelines of encapsulation
– Invoke a method on a particular object
– Use the Java technology application programming interface (API) online documentation
Identifiers, Keywords, and Types
– Use comments in a source program
– Distinguish between valid and invalid identifiers
– Recognize Java technology keywords
– List the eight primitive types
– Define literal values for numeric and textual types
– Define the terms primitive variable and reference variable
– Declare variables of class type
– Construct an object using new
– Describe default initialization
– Describe the significance of a reference variable
– State the consequence of assigning variables of class type
Typesafe Enums
– Describe a common enumerated type pattern before J2SE platform and the problems involved
– Create a simple enum
– Create an enum with attributes and constructors
– Create an enum with value-specific methods
– Use enum sets (ranges) and maps
– Write a simple program using typesafe enums
Varargs
– Describe the issues with variable-argument methods before J2SE platform
– Use variable argument methods
– Create variable argument methods
– Rewrite a sample program to use varargs
Java Static Import
– Describe the purpose of static imports
– Use static imports with constants (static attributes), static methods, and enums
– Describe the drawbacks of using static imports
– Rewrite a sample program to use static imports
Threads
– Describe a thread
– Create separate threads, controlling the code and data that are used by that thread
– Control the execution of a thread and write platform-independent code with threads
– Describe some of the difficulties that arise when multiple threads share data
– Use the keyword synchronized to protect data from corruption
– Use wait() and notify() to communicate between threads
Metadata (Annotations)
– Compare annotations before J2SE platform 5.0 with the new annotations
– Use built-in annotations
– Create your own annotation type
– Use your own annotation type in source code
– Use your own annotation type at runtime
– Describe the Annotation Processing Tool (apt)
– Use annotations to deprecate a method
Expressions and Flow Control
– Distinguish between instance and local variables
– Describe how to initialize instance variables
– Identify and correct a Possible reference before assignment compiler error
– Recognize, describe, and use Java software operators
– Distinguish between legal and illegal assignments of primitive types
– Identify Boolean expressions and their requirements in control constructs
– Recognize assignment compatibility and required casts in fundamental types
– Use if, switch, for, while, and do constructions and the labeled forms of break and continue as flow control structures in a program
Arrays
– Declare and create arrays of primitive, class, or array types
– Explain why elements of an array are initialized
– Explain how to initialize the elements of an array
– Determine the number of elements in an array
– Create a multidimensional array
– Write code to copy array values from one array to another
Class Design
– Define inheritance, polymorphism, overloading, overriding, and virtual method invocation
– Use the access modifiers protected and the default (package-friendly)
– Describe the concepts of constructor and method overloading
– Describe the complete object construction and initialization operation
Advanced Class Features
– Create static variables, methods, and initializers
– Create final classes, methods, and variables
– Create and use enumerated types
– Use the static import statement
– Create abstract classes and methods
– Create and use an interface
Exceptions and Assertions
– Define exceptions
– Use try, catch, and finally statements
– Describe exception categories
– Identify common exceptions
– Develop programs to handle your own exceptions
– Use assertions
– Distinguish appropriate and inappropriate uses of assertions
– Enable assertions at runtime
Text-Based Applications
– Write a program that uses command-line arguments and system properties
– Write a program that reads from standard input
– Describe the C-type formatted input and output
– Write a program that can create, read, and write files
– Describe the basic hierarchy of collections in Java 2 Software Development Kit (Java 2 SDK)
– Write a program to iterate over a collection
– Write a program that uses generic collections
Building Java GUIs
– Describe the Abstract Windowing Toolkit (AWT) package and its components
– Define the terms containers, components, and layout managers, and describe how they work together to build a GUI
– Use layout managers
– Use the FlowLayout, BorderLayout, and GridLayout managers to achieve a desired dynamic layout
– Add components to a container
– Use the Frame and Panel containers appropriately
– Describe how complex layouts with nested containers work
GUI Event Handling
– Define events and event handling
– Write code to handle events that occur in a GUI
– Describe the concept of adapter classes, including how and when to use them
– Determine the user action that originated the event from the event object details
– Identify the appropriate listener interface for a variety of event types
– Create the appropriate event handler methods for a variety of event types
– Understand the use of inner classes and anonymous classes in event handling
GUI-Based Applications
– Identify the key AWT components and the events that they trigger
– Describe how to construct a menu bar, menu, and menu items in a Java GUI
– Understand how to change the color and font of a component
Threads
– Define a thread
– Create separate threads in a Java technology program, controlling the code and data that are used by that thread
– Control the execution of a thread and write platform-independent code with threads
– Describe the difficulties that might arise when multiple threads share data
– Use wait and notify to communicate between threads
– Use synchronized to protect data from corruption
Advanced I/O Streams
– Describe the main features of the java.io package
– Construct node and processing streams, and use them appropriately
– Distinguish readers and writers from streams, and select appropriately between them
Concurrency Features
– Compare the concurrency utilities before J2SE platform with the new concurrency utilities
– Use an Executor or ExecutorService for thread management
– Use Futures and Callables for asynchronous computation
– Use locks and conditions as an improvement over the wait and notify methods
– Use atomic variables an an improvement over volatile variables
– Implement concurrency features
Networking
– Develop code to set up the network connection
– Understand the Transmission Control Protocol/Internet Protocol (TCP/IP)
– Use ServerSocket and Socket classes for implementation o