Description
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.
Finally, several chapters at the end of the course introduce unit-testing and test-driven-development practices. Here for the first time we introduce external libraries — JUnit, and the Mockito dynamic-mocking library — and the study is not entirely about technology but leans more into design and good practice.
Delegates will learn to
- 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.
- Learn how to 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.
Outline
Module -1
- Annotations
- Reflection API
- Scripting API
- Compiler API
Module -2
- Collections
- Performance
- List
- ArrayList
- HashMap
- Hashset
- Set
- Treeset
- LinkedHashMap
Module -3
- XML Processing
- XML and XSD
- JAXB lib.
- XSL
- XPath
- XQuery
Module -4
- Threads and Concurrent Programming
- Quick summary
- Callable
- Executors
- Synchronizers
- Multi Thread
Module -5
- Database Programming
- JDBC
- JPA
- Hibernate
Module -6
- NIO and NIO2
- Create File
- Delete, Write
- File Control
Module -7
- Networking
- Non-Blocking
- Sockets
- Selector
- Messajing
Module -8
- Security
- Digital Signatures
- Message Digests
- Symmetric/Asymmetric Ciphers
Module -9
- New Features
- Stream API
- Paralel Stream
- Map/Reduce
- Lamda
Prerequisites
Completing Java Programming course.
