Name
Java Fundamentals for Java EE Development

Code
3428

Duration
40 Hours

Description
The Java EE platform is an extension to Java SE. Taking a conventional Java course involves with learning topics that are not relevant for software development in Java EE. This course covers the relevant topics only, and sets the foundation for taking advance courses in Java EE.

Population
Software developers with practical experience in object oriented programming.

Objectives
Become familiar with the relevant Java topics for learning software development in Java EE.

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

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

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

Annotations
Introduction to Annotations
Annotations Syntax
Standard Annotations

Assertions
Introduction to Assertions
Using Assertions
Practical Examples

Regular Expressions
Introduction
Character Classes
Logical Operators
Quantifiers
Capturing Groups
Boundary Matchers
The Pattern Class
The Matcher Class

Efficient Programming
Introduction to Efficiency
Declaring Classes
Objects Instantiation
Using Strings
Declaring Interfaces
Using Generics
Using Enums
Using Annotations
Handling Exceptions
Threads Programming
Collections Usage