The main goal of the training is to apply the basic Java Concepts to software design and development. This course promotes Object-Oriented Programming (OOP) using Java 1.8 SDK core concepts which include the basic Java Application Programming Interfaces (APIs), the OOP principles, Java data structures, inner classes, concurrency, and streamed file transactions using new IO. The outline also covers the memory management and Java administration concepts for software performance. It also includes all new features of Java 1.8.
Duration 5 days – 35 hrs
Objectives
- To start extend Java basic concept to software development;
- To learn Java core libraries to avoid redundancies;
- To know in details the 4 principles of OOP;
- To learn and implement the types of exception handling mechanism;
- To use and create Java data structures for data management;
- To apply advance concept of software design using inner classes and threading concepts; and
- To know the new features of Java 1.8
Audience
- Fresh graduate or newbie in Java programming
- Knows how to code in C or C++
- Knows how to use Eclipse or any IDE
- Has algorithm backgrounds
Prerequisites
- Knows how to program in C or C++
- Basic experience with command-line tools
- Familiarity with object-oriented programming
Course Content
Day 1: Understanding Java classes and its OOP paradigm
- Useful Core Java API and Libraries
- java.lang API
- java.util API
- java.math API
- java.text API
- java.io API
- Principles of OOP
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Exception handling
- Checked and unchecked exceptions
- Exception handling approaches
- Simple try-catch statement
- Hierarchy of exceptions
- Multi-catching exceptions
- Throwing and re-throwing exceptions with risky methods
- Try-with-resources approach
- Custom exceptions
- Risky methods and constructors
- Overriding risky methods
Day 2: Java Collections and Generic Programming
- Generic programming
- Understanding the concepts
- The diamond operator and its Generic Types
- Re-usable classes and the OOP
- Generic methods
- Generic components
- The generic wild cards
- Java Collections Framework
- Typical collections
- List
- Set
- Map
- Queue
- Frozen collections
- Typical collections
- Java ADT
- Stack
- Queue
- Sorting collections
- The Iterable classes
- Enumerator
- Iterator
- ListIterator
- Custom Collections
Day 3: The Object and Memory management
- The Object
- Constructor overloading
- The super() and this() constructor methods
- The super and this keywords
- The Lazy and Eager initialization
- The static and instance initializer
- The Heap and the VM variables
- The nested types
- Inner classes
- Static inner classes
- Method local inner classes
- Anonymous inner classes
- The constant object and the Enum class
- The enum collections
- Customizing enum classes
Day 4: Thread-safe components
- Threading in Java
- Using thread API
- Using the Runnable class
- The synchronization approaches
- The Executer Service
- Introduction to concurrency
- Implementing asynchronous transactions
- The non-blocking Java file components
- The FileSystem
- The FileStore
- The Path
- The utility classes Paths and Files
- Managing file read and write transactions
- BufferedOutputStream and BufferedInputStream
- Buffere
- Channels
- MemoryMappedBuffer
Day 5: Other Java features
- The Java streams
- Functional interfaces
- The Stream API
- The Optional component
- The reflection API
- The JDBC transactions
- The XML parsing

