Development with Java® SE. Extended
Description
This training is a continuation of the Java for Beginners trainings and covers the most important features currently in use.
You will work with essential Java classes, learn how to use multithreading (both at the level of core mechanisms and java.util.concurrent library) and the reflection mechanism. We will also work on defining and using annotations, logging into programs, and apply Java’s most important features (lambda expressions, references to methods, streams, the new Date and Time API, etc.).
is issued on the Luxoft Training form
Objectives
- Use the system library essential classes in their applications: System, Math, Object, strings, wrappers
- Work with input-output from applications
- Control threads in applications
- Work with standard class collections
- Use Reflection mechanisms
- Use annotations in applications
- Use Java 8 lambdas in applications
- Use Java 8 streams in applications
- Work with the Java 8 Date and Time API
Target Audience
- Junior Java developers with knowledge of Java syntax and OOP (or those who have attended JVA-007)
- Middle Java developers who want to structure their knowledge of standard JDK libraries (I/O, collections, multithreading, data streams, etc.)
Prerequisites
Experience in JavaSE development
Roadmap
1. System Library Essential Classes: theory 2 h, practice 2 h
· System
· Math
· Object
· Strings
· Primitive Wrapper Class
· Working with Regular Expressions
· Properties
2. Input-Output: theory 3 h, practice 5 h · I/O class library
· Networking
· Formatting Output
3. Threads: theory 3 h, practice 7 h
· Thread
· Thread control
· Critical sections
· Thread control in critical section
· Synchronization primitives library java.util.concurrent
4. Collections: theory 1.5 h, practice 3.5 h
· Overview of collection API
· Collections
· Set
· Map
· Applicability of various data structures in different situations
· Collection elements comparison mechanism
· Synchronized and unsynchronized collections
5. The Reflection API: theory 0.5 h, practice 0.75 h
· Creating new class instances with the Reflection API
· Introspection on class fields
· Introspection on class methods
6. Annotations: theory 0.5 h, practice 1 h
· Using Annotations
· Standard Annotations
· Custom Annotations
7. Java 8 Lambda Expressions: theory 1.75 h, practice 1 h
· Introduction to “Lambda Expressions”
· The lambda syntax
· Functional interfaces
· Method references
· Constructor references
8. Streams and Collectors: theory 1.5 h, practice 3.5 h
· Introduction: map / filter / reduce
· What is a « Stream »
· Patterns to build a Stream
· Operations on a Stream
· Optionals · Collectors
9. Java 8 Date and Time API: theory 0.75 h, practice 1.75 h
· Problems with Date and Time classes in Java 7
· Design Principles of Java 8 Date and Time API
· Java 8 Date Time classes · Java 8 Date Time enums
· Period and duration · Date API utilities
· Temporal adjusters
Total: theory 14,5h (36%), practice 25,5h (64%)