Duration: 5 days
This course provides advanced training in developing software using the Java Platform, Standard Edition, or Java SE. It is intended for students with solid experience in structured and object-oriented Java programming, including use of the Collections API and exception handling. Generic types should be understood, at least at a basic level; the course does begin with a refresher and then a more advanced treatment of generic types. After a quick introduction to the Java Time API, students get familiar with the I/O streams model, file handling, and object serialization, and learn to use streams to communicate over network sockets. A two-chapter unit covers multi-threaded programming and concurrency techniques. We look at dynamic typing in Java, in the Reflection API and with dynamic proxies, and understand the underpinnings of source-code annotations.
• Make effective use of Java generic types.
• Understand the structure of streams in Java, and learn how to use streams to manage file I/O.
• Use Java Serialization to internalize and externalize potentially complex graphs of objects.
• Communicate between processes using network sockets.
• Write multi-threaded Java applications that safely manage concurrent access to application state.
• Use the Reflection API and dynamic proxies for highly generic tasks, discovery, or code-generation.
• Use standard annotations and develop custom annotations to express meta-data in Java source files.
• Build unit tests for Java classes using JUnit.Write effective tests, and design classes for testability.
• Understand test-driven development (TDD) and use dynamic mocking to support isolated testing.
Method of Delivery
• Onsite/Live class instructions or Online web conference
• Open discussion
• Case studies