Java Sylliby
Java Sylliby
Agile SCRUM
Execution:
Core Java 8
Program Duration: 20 days
Contents:
Declarations and Access Control
o Identifiers & JavaBeans
o Legal Identifiers
o Sun's Java Code Conventions
o JavaBeans Standards
o Declare Classes
o Source File Declaration Rules
o Class Declarations and Modifiers
o Concrete Subclass
o Declaring an Interface
o Declaring Interface Constants
o Declare Class Members
o Access Modifiers
o Nonaccess Member Modifiers
o Constructor Declarations
o Variable Declarations
o Declaring Enums
Object Orientation
o Encapsulation
o Inheritance, Is-A, Has-A
o Polymorphism
o Overridden Methods
o Overloaded Methods
o Reference Variable Casting
o Implementing an Interface
o Legal Return Types
o Return Type Declarations
o Returning a Value
o Constructors and Instantiation
o Default Constructor
o Overloaded Constructors
o Statics
o Static Variables and Methods
o Coupling and Cohesion
Assignments
o Stack and Heap—Quick Review
o Literals, Assignments, and Variables
o Literal Values for All Primitive Types
o Assignment Operators
o Casting Primitives
o Using a Variable or Array Element That Is Uninitialized and Unassigned
o Local (Stack, Automatic) Primitives and Objects
o Passing Variables into Methods
o Passing Object Reference Variables
o Does Java Use Pass-By-Value Semantics?
o Passing Primitive Variables
o Array Declaration, Construction, and Initialization
o Declaring an Array
o Constructing an Array
o Initializing an Array
o Initialization Blocks
o Using Wrapper Classes and Boxing
o An Overview of the Wrapper Classes
o Creating Wrapper Objects
o Using Wrapper Conversion Utilities
o Autoboxing
o Overloading
o Garbage Collection
o Overview of Memory Management and Garbage Collection
o Overview of Java's Garbage Collector
o Writing Code That Explicitly Makes Objects Eligible for Garbage Collection
Operators
o Java Operators
o Assignment Operators
o Relational Operators
o instanceof Comparison
o Arithmetic Operators
o Conditional Operator
o Logical Operators
Maven Fundamentals
o Introduction
o Folder Structure
o The pom.xml
o Dependencies
o Goals
o Scopes
o The Compiler Plugin
o Source Plugin
o Jar Plugin
TDD with Junit 5
o Types of Tests
o Why Unit Tests Are Important
o What's JUnit?
o JUnit 5 Architecture
o IDEs and Build Tool Support
o Setting up JUnit with Maven
o Lifecycle Methods
o Test Hierarchies
o Assertions
o Disabling Tests
o Assumptions
o Test Interfaces and Default Methods
o Repeating Tests
o Dynamic Tests
o Parameterized Tests
o Argument Sources
o Argument Conversion
o What Is TDD?
o History of TDD
o Why Practice TDD?
o Types of Testing
o Testing Frameworks and Tools
o Testing Concepts
o Insights from Testing
o Mocking Concepts
o Mockito Overview
o Mockito Demo
o Creating Mock Instances
o Stubbing Method Calls
Threads
o Defining, Instantiating, and Starting Threads
o Defining a Thread
o Instantiating a Thread
o Starting a Thread
o Thread States and Transitions
o Thread States
o Preventing Thread Execution
o Sleeping
o Thread Priorities and yield( )
o Synchronizing Code
o Synchronization and Locks
o Thread Deadlock
o Thread Interaction
o Using notifyAll( ) When Many Threads May Be Waiting
Concurrent Collections
o Implementing Concurrency at the API Level
o Hierarchy of Collection and Map, Concurrent Interfaces
o What Does It Mean for an Interface to Be Concurrent?
o Why You Should Avoid Vectors and Stacks
o Understanding Copy On Write Arrays
o Introducing Queue and Deque, and Their Implementations
o Understanding How Queue Works in a Concurrent Environment
o Adding Elements to a Queue That Is Full: How Can It Fail?
o Understanding Error Handling in Queue and Deque
o Introducing Concurrent Maps and Their Implementations
o Atomic Operations Defined by the ConcurrentMap Interface
o Understanding Concurrency for a HashMap
o Understanding the Structure of the ConcurrentHashMap from Java 7
o Introducing the Java 8 ConcurrentHashMap and Its Parallel Methods
o Parallel Search on a Java 8 ConcurrentHashMap
o Parallel Map / Reduce on a Java 8 ConcurrentHashMap
o Parallel ForEach on a Java 8 ConcurrentHashMap
o Creating a Concurrent Set on a Java 8 ConcurrentHashMap
o Introducing Skip Lists to Implement ConcurrentMap
o Understanding How Linked Lists Can Be Improved by Skip Lists
o How to Make a Skip List Concurrent Without Synchronization
Contents:
Introduction
o The Relational Model
Understanding Basic SQL Syntax
o The Relational Model
o Basic SQL Commands - SELECT
o Basic SQL Commands - INSERT
o Basic SQL Commands - UPDATE
o Basic SQL Commands – DELETE
Introduction to JDBC
o Connection, Statement, PreparedStatement, ResultSet
Introduction to Design Pattern
Self learning with online links and explanation by Trainer with Demos
o Creational Design Pattern
Factory Pattern
Singleton Pattern
Prototype Pattern
o Structural Design Pattern
Decorator Pattern
Facade Pattern
o Behavioral Design Pattern
Chain of Responsibility Pattern
Iterator Pattern
o Presentation Layer Design Pattern
Intercepting Filter Pattern
Front Controller Pattern
o Business Layer Design Pattern
Business Delegate Pattern
Transfer Object Pattern
o Integration Layer Design Pattern
Data Access Object Pattern
Contents:
Introduction
- Introduction & overview of data persistence
- Overview of ORM tools
- Understanding JPA
- JPA Specifications
Entities
- Requirements for Entity Classes
- Persistent Fields and Properties in Entity Classes
- Persistent Fields
- Persistent Properties
- Using Collections in Entity Fields and Properties
- Validating Persistent Fields and Properties
- Primary Keys in Entities
Managing Entities
- The EntityManager Interface
- Container-Managed Entity Managers
- Application-Managed Entity Managers
- Finding Entities Using the EntityManager
- Managing an Entity Instance's Lifecycle
- Persisting Entity Instances
- Removing Entity Instances
- Synchronizing Entity Data to the Database
- Persistence Units
Querying Entities
- Java Persistence query language (JPQL)
- Criteria API
Entity Relationships
- Direction in Entity Relationships
- Bidirectional Relationships
- Unidirectional Relationships
- Queries and Relationship Direction
- Cascade Operations and Relationships
Spring 5.0
Program Duration: 10 days
Contents:
1. Spring Core
Spring Core Introduction / Overview
- Shortcomings of Java EE and the Need for Loose Coupling
- Managing Beans, The Spring Container, Inversion of Control
- The Factory Pattern
- Configuration Metadata - XML, @Component, Auto-Detecting Beans
- Dependencies and Dependency Injection (DI) with the BeanFactory
- Setter Injection
Spring Container
- The Spring Managed Bean Lifecycle
- Autowiring Dependencies
Dependency Injection
- Using the Application Context
- Constructor Injection
- Factory Methods
- Crucial Namespaces ‘p’ and ’c’
- Configuring Collections
Metadata / Configuration
- Annotation Configuration @Autowired, @Required, @Resource
- @Component, Component Scans. Component Filters
- Life Cycle Annotations
- Java Configuration, @Configuration, XML free configuration
- The Annotation Config Application Context
2. Spring Boot
SPRING BOOT Introduction
- Spring Boot starters, CLI, Gradle plugin
- Application class
- @SpringBootApplication
- Dependency injection, component scans, Configuration
- Externalize your configuration using application.properties
- Context Root and Management ports
- Logging
Using Spring Boot
- Build Systems, Structuring Your Code, Configuration, Spring Beans and
Dependency Injection, and more.
Introduction to Bootstrap
- Introduction
- Getting Started with Bootstrap
Bootstrap Basics
- Bootstrap grid system
- Bootstrap Basic Components
Bootstrap Components
- Page Header
- Breadcrumb
- Button Groups
- Dropdown
- Nav & Navbars
JavaScript Essentials
ES6 & Typescript
- Var, Let and Const keyword
- Arrow functions, default arguments
- Template Strings, String methods
- Object de-structuring
- Spread and Rest operator
- Typescript Fundamentals
- Types & type assertions, Creating custom object types, function types
- Typescript OOPS - Classes, Interfaces, Constructor, etc