Professional Java 2 Standard Edition ( Core Java)

Duration: 5 Days

Mandatory Prerequisites:

Good Development Experience with at least one other programming language. Failing this, the advanced topics covered here will not be effective.

The duration of the course will vary based on the selection of topics.

Language Fundamentals

  • The main method – starting point of execution
  • A Simple Java Program
  • Comments
  • Datatypes and Variables
  • Assignments and Initializations
  • Operators
  • Strings
  • Control Flow
  • Arrays
  • Static Methods

Object Orientation

  • Object
  • Class
  • Class Specification
  • Characteristics of an Object
  • Basic Principles of Object Orientation
    • Abstraction
    • Encapsulation
    • Modularity
    • Hierarchy
    • Polymorphism and overloading/overriding
  • Constructors
  • Relationships between Classes
  • Static attributes and Static Methods
  • Packaging in Java

OO Programming in Java

  • You manipulate objects with references
  • Where storage lives
  • Special case: primitive types
  • Arrays in Java
  • Scoping and Garbage Collection
  • Static initialisers and Instance initialisers
  • Up casting and down casting (instance of)
  • Abstract Classes
  • Preventing Inheritance and the final keyword
  • Protecting Access
  • Object class and the singly rooted Hierarchy
  • The Class called Class (Run-Time Type Identification)

Inner Classes

  • Top level Nested classes and interfaces
  • Non-static Inner classes
  • Local classes
  • Anonymous classes

Error Handling with Exceptions

  • Basic exceptions
  • Exception arguments
  • Catching an exception
  • The try block
  • Exception handlers
  • Creating your own exceptions
  • Catching any exception
  • Rethrowing an exception
  • Standard Java exceptions
  • Exception guidelines

Collections

  • Advanced Array Operations
  • The Array Class
  • Copying Arrays
  • Comparing Arrays
  • Sorting arrays and the Equals Implementation
  • Containers
  • Filling Containers
  • Disadvantages of Object Containers
  • Making a type concoius ArrayList
  • Parameterized types
  • Iterators
  • Container Taxanomies
  • Collection Functionality
  • List Functionality
  • Stack and Queue Implementations
  • Set Functionality
  • Sorted Set
  • Map functionality
  • Sorting and searching Lists

Reflections

  • Detecting Types
  • The need for RTTI
  • Reflection: run time class information
  • Examining classes
  • Finding Class modifiers
  • Finding Class Constructors
  • Finding Class methods
  • Finding Class fields
  • Creating objects based on RTTI and invoking methods
  • A Simple Factory pattern

Input/Output

  • Byte Streams vs. Character Streams
  • Java Stream Hierarchy
  • Chaining of Streams and adding functionality
  • Standard Input: Reading strings
  • Standard Input: Reading Primitives
  • Writing to the Standard Output
  • File I/O
  • Other java.io Classes
  • Converting data
  • Fetching primitives
  • View buffers
  • Data manipulation with buffers
  • Buffer details
  • Memory-mapped files
  • Performance
  • File locking
  • Locking portions of a mapped file
  • Java ARchives (JARs)
  • Object serialization
  • Finding the class
  • Controlling serialization using Externalizable
  • The transient keyword
  • Versioning

Threads

  • The Basic Threads
  • Yielding
  • Sleeping
  • Priority
  • Daemon Threads
  • Joining
  • Sharing Resources
  • Resolving shared resources contentions and synchronization
  • Fixing Semaphores and Mutexs
  • Critical Sections
  • Thread States
  • Becoming blocked
  • Wait & Notify
  • Piping between threads
  • Deadlock
  • Thread Group
  • Implementing Thread Pools
  • Implementing Object Pools
  • Implementing Queue Data Structures
  • Implementing Asynchronous Call Semantics

JDBC

  • Introduction
  • DB Drivers
  • Type 1,2,3 and 4 drivers
  • Driver Manager
  • Connection
  • Transaction concepts, Distributed Transactions and two phase commit
  • Statements
  • Callable and prepared statements
  • Examine a Driver code
  • Resultsets
  • Meta Data