Outline
- 1. Java Basics
History and evolution of Java
Setting up the development environment (JDK, IDEs like Eclipse, database, etc.)
Writing and running a simple Java program
Java syntax and structure (classes, methods, and main method)
- 2. Variables and Data Types
Primitive data types
Variables and constants
Type casting and type conversion
- 3. Operators and Expressions
Arithmetic, relational, and logical operators
Operator precedence
Expressions and statements
- 4. Control Flow Statements
Conditional statements (if, else, switch)
Looping constructs (for, while, do-while)
Break and continue statements
- 5. Collections Framework
Introduction to collections (List, Set, Map)
ArrayList, LinkedList, HashSet, and HashMap
Iterators and enhanced for loop
- 6. Exception Handling
Types of exceptions
Duration : 5 days
Course Outline :: Java Curriculum for Practical Application in Workspace::
Try-catch block
Throwing exceptions
Creating custom exceptions
- 7. Java Database Connectivity (JDBC)
Introduction to JDBC
Connecting to a database
Executing SQL queries and updates
Handling ResultSet
- 8. Multithreading and Concurrency
Introduction to threads
Creating and starting threads (Runnable and Thread classes)
Thread lifecycle and states
- 9. Synchronization and Concurrency Utilities
Synchronized methods and blocks
Locks and ReentrantLocks
Executors framework
Concurrent collections (ConcurrentHashMap, CopyOnWriteArrayList)
- 10. Java Input/Output (I/O)
Byte streams and character streams
File I/O operations
BufferedReader, BufferedWriter, FileReader, and FileWriter
- 11. Introduction to OOP Concepts
Classes and objects
Fields and methods
Constructors
- 12. Encapsulation and Access Modifiers
Private, protected, public, and default access
Packages and member access
Importing packages
Getters and setters
- 13. Inheritance
Superclasses and subclasses
Course Outline :: Java Curriculum for Practical Application in Workspace::
Method overriding
The super keyword
Course Outline :: Java Curriculum for Practical Application in Workspace::
- 14. Polymorphism
Method overloading
Runtime polymorphism (dynamic method dispatch)
Abstract classes and interfaces
- 15. Generics
Introduction to generics
Generic classes and methods
Bounded types and wildcards
- 16. Lambda Expressions and Functional Programming
Introduction to lambda expressions
Functional interfaces
Streams API and method references
- 17. Serialization and Deserialization
Serializing objects
Deserializing objects
Transient keyword
- 18. Networking in Java
Sockets and server sockets
TCP and UDP communication
URL and URLConnection classes
- 19. Introduction to Java Annotations
What are annotations?
o Metadata in Java.
o Use cases: Documentation, compilation checks, runtime instructions.
How annotations work:
o Parsing by the compiler or runtime (Reflection API).
Commonly Used Built-In Annotations o Standard Annotations:
@Override: Ensures a method overrides a superclass method.
@Deprecated: Marks methods or classes as obsolete.
@SuppressWarnings: Suppresses compiler warnings.
o Meta-Annotations:
@Retention: Specifies the annotation's retention policy (SOURCE, CLASS,
RUNTIME).
Course Outline :: Java Curriculum for Practical Application in Workspace::
@Target: Specifies the applicable element (CLASS, METHOD, FIELD, etc.).
@Inherited: Enables inheritance of annotations.
Creating Custom Annotations o Declaring an annotation with @interface.
o Adding elements (optional parameters).
o Using default values for elements.
- 20. Introduction to REST APIs
What is REST?
o RESTful principles (Statelessness, Resource-based, Uniform Interface).
HTTP Basics o Methods: GET, POST, PUT, DELETE.
o Status codes and their meaning.
REST vs. SOAP (Brief comparison)
- 21. Building REST APIs in Java with Spring Boot
Creating a Basic REST API o Annotation Overview: @RestController, @RequestMapping, @GetMapping, etc.
o Developing endpoints (GET, POST, PUT, DELETE).
Introduction to Spring Data JPA o Setting up a database o Adding dependencies for Spring Data JPA.
o Creating an Entity and Repository.
o Using JpaRepository methods (e.g., save, findAll, findById).
Connecting REST API with JPA o Writing endpoints to interact with the database.
Returning and consuming JSON responses.
Phase 2: Code Walkthrough & Practical Java Programming (Week 2)
Duration: 5 Days
Focus:
Walkthrough of existing RPG code: This phase aims to bridge the gap between the current system (RPG) and Java.
A technical lead, along with the instructor, will walk trainees through the code, identifying critical parts to convert to Java in the next phase.
Trainees will be assigned a task to convert parts of the RPG code into Java.
They will work independently but have access to guidance from the technical lead.
Course Outline :: Java Curriculum for Practical Application in Workspace::
Learning Outcome:
Trainees will understand how to refactor and adapt existing code into a Java-based solution.
Verification:
At the end of the week, the technical lead will review the trainee’s work to ensure adherence to standards and successful application of Java concepts.
Additional notes:
- 1. Phase 2 and 3 can be ran concurrently - while walking through RPG program, instructor will try to
map it to Java and participants will try to implement it.
- 2. Class size: 15 pax (max)
- 3. Duration for each phase is estimation.
- 4. Tools required for training: JDK, Eclipse, Postman, PostgreSQL
Programme scope, delivery arrangements and suitability are confirmed during enquiry.