| Java Training   Overview 
Fast Track to Java and OO Development provides a comprehensive introduction to Java. It is suitable for programmers with good working programming experience (no Java experience needed). It can be taught to audiences with less experience by reducing coverage of the optional, more advanced, topics.
 In addition to covering basic Java programming, the course provides a solid understanding of the core OO and Java concepts and practices needed to create well-designed Java programs. This includes creating well-designed Java classes, encapsulation, composition, and inheritance/interfaces.
 
 The material and labs include coverage of useful new Java capabilities such as the Java 9+ module structure, and other recent features and API enhancements. It also introduces important APIs such as the Java Collections Framework, and JDBC/JPA. This course is suitable for environments using Java 11-17. It also covers details of the Java release cycle, and Long Term Support (LTS) releases.
 
 Be prepared to work hard and learn a great deal! The course can be held on-site & customized to fit your needs.
 
 Java Training   Course Objectives
 
	Java Training PrerequisitesUnderstand Java’s importance, uses, strengths and weaknessesUnderstand the release cycle and Long Term Support (LTS) releasesUnderstand Java language basicsWrite, compile, and run Java programsUse the Java shell (JShell - Java 9+) for interactive programmingUnderstand the Object Model and Object Oriented ProgrammingUnderstand and use classes, inheritance, polymorphismCreate well designed classes and use them in your Java programsUse composition and delegation to create objects from other objectsUnderstand & use packages to organize codeUnderstand and use Java 9 modulesUnderstand interfaces, their importance, and their usesUse interfaces to implement abstractionLearn good Java coding styleCreate well structured Java programsCompile and execute programs with the JDK development tools and with an Integrated Development Environment (IDE) of your choiceUse the core Java libraries (java.lang, java.util)Understand & use exceptions for error handlingUnderstand the basics of using JDBC and JPA, and use them to access databases from JavaUse the Java Collections Framework including new API introduced in Java 9-11Use other new features such as type inferenceBe aware of, and use the new features of Java 11-17, as well as important advanced features of earlier Java versionsUnderstand and use basic I/O streams (Optional) 
 Working knowledge of some programming language - no Java experience needed
 
 Java Training   Course Duration
 
 5 Days
 
 Java Training   Course outline
 
 Session 1: Java Overview
 
Session 2: Class and Object BasicsLanguage and Platform Features A Simple Java ProgramThe Java Release CycleProgram LifecycleThe Java SE Development Kit (JDK)LABS:  
              Hello World:  A Simple Application 
Session 3: More on Classes and ObjectsThe Object Model and Object-Oriented ProgrammingClasses, References, and Instantiation
          Adding Data to a Class DefinitionAdding Methods (Behavior)LABS:  
              Exploring Types and Object InstancesIntroducing your IDEWriting and Using a Class Definition with Fields and Methods 
Session 4: Flow of ControlMore about MethodsEncapsulation and Access Control, public and private AccessConstructors and Initializationstatic Members of a ClassLABS:   
                Accessor MethodsEncapsulation / Access ProtectionWriting and Using Constructors(Optional) Static Members 
 Session 5: More about Classes and ObjectsBranching: if, if-else, switchIteration: while, do-while, for, break, continueLABS:    
Session 6: Strings, Arrays, and Dates/TimesType-safe EnumsWrapper ClassesJava 8+ Date/Time SupportWorking with ReferencesFormatted OutputLABS:   <\li>
  Using enumsWorking with Dates and TimesUsing the Debugger 
Session 7: Packages and ModulesString, StringBuffer, StringBuilderArrays, Primitive Arrays, Arrays of Reference TypesvarargsLABS:    
 
Session 8: Composition and InheritancePackage Overview - Using Packages to Organize CodeCreating Packages, package Statement, Required Directory Structureimport statementsClasspathJava Modules OverviewDefining Modules, Requires, and ExportsModule Path and Classpath - Differences and CoexistenceLABS:  
Using PackagesUsing Java Modules 
Session 9: InterfacesUsing Composition to Deal With ComplexityComposition/HAS-A, DelegationUsing Inheritance to share commonalityIS-A, extends Inheriting FeaturesConstructor IssuesOverriding Methods, @Override, Using PolymorphismAbstract ClassesLABS:  
  (Optional) Working with CompositionUsing InheritancePolymorphism[Optional] Polymorphism 
Session 10: ExceptionsDefining and Implementing InterfacesUsing InterfacesDefault Methods and static Methods LABS:  
  Using Interfaces to Remove Implementation Dependencies Using Default and Static Methods 
Session 11: Java Collections and GenericsExceptions and the Exception HierarchyThrowing Exceptions and Checked Exceptionstry and catchHandling Exceptionstry and catchProgram Flow with ExceptionsMulticatch, finally, try-with-resourcesLABS:  
 Throwing ExceptionsChecked Exceptions 
Session 12: Database Access with JDBC and JPAThe Collections Framework and its APICollections and Java GenericsCollection, List, Set, MapAutoboxingCollections of Object (non-generic)
Using ArrayList, HashSet, and HashMapfor-each LoopProcessing Items With an Iterator[Optional] More About GenericsLABS:   
  Using Collections and Generics 
Session 13: I/O Streams (Optional)JDBC OverviewJDBC Defined TypesExample of JBDC UsageJPA Overview
JPA Architecture and Programming ViewMapping Entity Classes with AnnotationsPersistence Unit, EntityManagerFactory, and EntityManagerWorking with JPA (Find by primary key and inserts)LABS: 
  Mapping an Entity ClassUsing JPAInsert/Query Demo 
Session 14: Additional Language Features (Optional)I/O Streams OverviewReaders and WritersException HandlingByte StreamsWorking with FilesNIO, Paths, FilesLABS:   
 Reading and Writing FilesUsing Byte Streams (Optional) 
Functional Interfaces and Lambda ExpressionsSwitch ExpressionsOther Java FeaturesLABS:   
 Working with Lambdas (Demo) 
 |