Course Outline


Pre-requisites

  • The participants must be comfortable with programming constructs in any one language

Duration

5-6 days

Lab Setup

  • All participants must have a laptop with Internet connectivity
  • Windows/Linux with Eclipse Oxygen Java/JEE edition
  • JDK 8

Course Outline for Java

Introduction
  • How is Java different from C/C++?
  • Things you can do in Java
  • Why Java?
  • Terminologies
  • Installing Java
  • A Sample Run
  • A Few Assignments
Java Language Basics
  • Language Basics
  • Naming Rules
  • Primitive Datatypes and Arrays
  • Type Conversion
  • Type Casting
  • Arrays
  • Operators
  • Expressions, Statements, Blocks, Methods
  • Operator Precedence
  • Scope
  • Method Overloading
  • Recursion
  • Call by Value/Call by Reference
  • Control Flow
  • Strings
OOP in Java
  • Object Oriented Programming – The Need
  • Association, Composition, Aggregation
  • Inheritance
  • Composite Types – Lists, Sets and Maps
  • Interfaces and Implementation
  • Design by Contract
  • Classes and Objects
  • Constructors
  • static methods
  • public, private, protected class/methods
Advanced Class Features
  • Declare and use static variables and methods
  • Declare and use final classes, methods, and variables
  • Use abstract methods and interfaces
  • Use inner classes
  • Classes for Primitive Types
  • package private, protected
  • Iterators
  • abstract classes
  • Method Overriding
  • Generics
Advanced Java
  • Advanced features of Eclipse IDE
  • Configuration Management
  • Logging
  • Debugging
  • Reuse - DRY principles
  • Unit-testing and Test Driven Development
  • Evolving the design - Refactoring
  • Javadocs
  • Packages
  • I/O Streams
  • Serialization
  • Reflection & Annotations
  • Creating your own annotation
  • Working with Third Party Libraries
Networking in Java
  • TCP/IP stack
  • Working with URLs
  • Sockets
  • UDP and Datagrams
  • RMI
  • Data formats and Serialization
  • REST concepts - what is resource state transfer, why it is important etc
Parallel programming
  • The need
  • Parallel programming paradigm
  • Threads
  • Synchronization
  • Concurrency objects
  • Map/Reduce (an introduction)
Exceptions
  • Define exceptions
  • Describe the use of the keywords try, catch, and finally
  • Describe exception categories
  • Identify common exceptions
  • Write code to handle your own exceptions
RMI
  • What is Remote Method Invocation?
  • Understanding the RMI Flow
  • The use of the RMI Registry
  • RMI - An Example
  • Various RMI Tools available
  • Alternatives to RMI
XML Parsing
  • Introduction to DOM concepts
  • Document, Node, NodeList, Element, Attr, Text etc Comment
  • Understanding the use of the DOM parser
  • Using XPath with DOM
  • Understanding the use of SAX parser
  • Understanding when to use SAX v/s DOM
  • Understanding the STAX parser
  • Difference between SAX and STAX parsers
JDBC
  • Introduction to Database Concepts
    • ER modelling
    • Handling 1..1, 1..n, m..n relationships
    • Primary and Foreign Keys
    • Normalization
  • Creating a database
  • Creating Tables
  • CRUD Operations on Tables
  • Introduction to JDBC
    • Connection
    • Statements
    • ResultSet
    • SQLException
  • JDBC Driver Types
  • Working with Prepared Statements
  • Understanding Datasources
  • Preventing SQL Injection Attacks
JUnit and TDD
  • Introduction
    • Why do we need to test code
    • Different types of testing
    • Unit testing using JUnit
  • A deep dive into JUnit
    • JUnit 3 v/s JUnit 4
    • Getting started using JUnit
    • Using JUnit within Eclipse
    • Assertions
    • Testing for exceptions
    • Test isolation
    • Creating and organizing test fixtures with setUp/tearDown and @Before/@After
    • Creating Test Suites
  • Test-Driven Development
    • Best Practices with JUnit and TDD
    • An example of TDD

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.