Name
Java Fundamentals

Code
3422

Duration
144 Hours

Description
This course provides a basic introduction for the Java programming language. It covers all topics required for those who want to develop Java SE stand alone applications and includes a jump start introduction for developing Java EE server side applications.

Population
Software Developers.

Objectives
Be capable of developing Java SE stand alone applications and simple Java EE server side applications.

Prerequisites
Practical experience in OOP.

Topics
Let's Start
History
JVM
JDK
JRE
Hello World
JavaDoc
Classes & Packages
API Documentation

The Basic
Java comparing with C++
Simple Output
Remarks
Native Data Types
Variables
Keywords
Identifiers
Expressions & Operators
Simple & Compound Statements
Control Statements
Looping Statements
Assignments
Local Variables
Assertion
Annotations

Introduction to OOP
Software Development Cycle
Objects & Classes
Key Features of OOP
Relationships between Objects

Object Oriented Programming
Objects Classes & Class Type Variables
Declaring Classes
Class Type Variables
Calling a Method
The 'this' Special Keyword
Class Declaration
Declaring Attributes
Declaring Methods
Methods Overloading
Declaring Constructors
Default Constructors
Overloading Constructors
Using 'this' within Constructors
Static Variables
Static Methods
Static Initializers
Final Variables
Software Packages
Package Statement
The 'import' Statement
Declaring Enums
Java API Documentation

Arrays & Strings
Array of Native Type Values
Array of Objects
Square Brackets Position
Copying Array Values
Multi Dimensional Array
The 'length' Variable
The 'String' Class
Instantiating String
Comparing Strings
The 'toString()' Method
The StringBuffer Class
The StringBuilder Class
The StringTokenizer Class
Passing Arguments to 'main' Method

Inheritance
Introduction to Inheritance
Inheritance in Java
Derivation Syntax
Inheritance Meaning
Constructors & Inheritance
Access Modifiers
Overriding Methods
Polymorphism
Constructors & 'super' Keyword
Abstract Class
Interfaces
The 'instanceof' Operator
Casting References
Deprecated Methods
The 'object' Class

Inner Classes
Inner Classes Types
In-Depth Meaning
Inner Classes within Methods
Annonymous Inner Class
Static Inner Class

Applets
Introduction to Applets
Applets History
Applets Security Restrictions
The Applet & JApplet Classes
The Graphics Class
Applet Life Cycle
AWT Painting
The Applet HTML Tag
Applet Parameters
The 'OBJECT' & 'EMBED' Tags
The AppletContext
Additional Applet Features

Exceptions Handling
The Exceptions Handling Mechanism
Exceptions Classes Hierarchy
Three Types of Exceptions
Try&Catch Statement
The 'throw' Command
The Throwing Chain
The 'finally' Block
The 'throws' Adding
The 'Handle or Declare' Rule
Methods Overloading
Samples

Threads
What is a Thread?
The Thread Parts
Creating New Thread
Starting The Thread
Threads & Applets
Extending Thread
Time Slicing & Preemptive
Priority Pools
Threads Scheduling
Killing Threads
The 'join()' Method
The 'yield()' Method
Synchronization
The 'lock' Flag
Synchronized Method
Deadlocks
The 'wait()' & 'notify()' Methods
Deamon Threads
Thread Dump
Java SE 5.0 & 6.0 New Threads Features

I/O Streams
Java I/O Overview
I/O Streams Categories
Byte & Char Streams
The InputStream Abstract Class
The OutputStream Abstract Class
Writing/Reading To/From Files
The Reader Methods
The Writer Methods
Streams Chaining
InputStreamReader
OutputStreamWriter
URL Class
Objects Serialization
The 'File' Class
The 'RandomAccess' Class

Java Utilities
Calendar
Wrapper Classes
Collections Framework

GUI Using Swing
Introduction to Swing
Swing comparing with AWT
Events Handling
MVC Architecture
Basic Components
Toggle Buttons
Menu & Toolbars
Borders
Containers
Pop Ups
Layout Managers
Advanced Containers
Bounded Range Components
List Model Components
Spinner Model Components
Text Based Componetns
The Tree Components
The JTable Component

Networking
TCP\IP in Java Overview
Serial TCP/IP Server
Concurrent TCP/IP Server

JDBC
Introduction to JDBC
Database Transactions
Simple Statements
Prepared Statements
Callable Statements
ResultSet Processing

Generics Overview
Introduction
Subtypes
Wildcards
Indepth

Collections Framework
Introduction
Performance
Set
List
Queue
Map

Reflection Capabilities
Introduction
The 'Class' Class
Class Members
Array Types

Java Servlets & JSP
Java Servlets & JSP Basics
JSP Overview
JSP Directives
JSP Scripting
WAR Descriptor
Session Management
Java Beans
JSP Expressions

EJB 3.0 Fundamentals
EJB 3.0 Model
Business Logic Developing
Persistence API

Java Web Services
Introduction to Java & XML
Java API for XML Web Services (JAXWS)
Java Architecture for XML Binding (JAXB)