Name
Java Fundamentals for Java SE Development

Code
3429

Duration
40 Hours

Description
The Java SE platform enables us to develop desktop rich internet applications. Given the rich user interface we can develop in Swing, the capability of running the very same stand alone application on every platform and the ease of the development process choosing Java for developing the next desktop rich internet application seems to be the natural choice. This course covers the topics that are relevant for this purpose and sets the foundation for an immediate practical work on developing a desktop rich internet application.

Population
Software developers with practical experience in procedural programming.

Objectives
Become familiar with the relevant topics in Java for developing desktop rich internet applications.

Prerequisites
Practical experience in procedural programming.

Topics
Java Development Kit
History
JVM
JDK
JRE
Hello World
JavaDoc
Classes & Packages
API Documentation
Object Oriented concept
Software Development Cycle
Objects & Classes
Key Features of OOP
Relationships between Objects
Procedural Programming Syntax and Constructs
Java comparing with C\C++
Simple Output
Remarks
Native Data Types
Variables
Keywords
Identifiers
Expressions & Operators
Simple & Compound Statements
Control Statements
Looping Statements
Assignments
Local Variables
Assertion
Annotations
The Clipse IDE
Introduction
The Workbench
Perspectives
Views & Editors
The Resources
The Help System
Debug Java Application
OOP Syntax and Constructs
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 Syntax and Constructs
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
Inner Classes Syntax and Constructs
Inner Classes Types
In-Depth Meaning
Inner Classes within Methods
Annonymous Inner Class
Static Inner Class
Exceptions Handling Syntax and Constructs
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
Multithreaded programming
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
Synchronization
The 'lock' Flag
Synchronized Method
Deadlocks
The 'wait()' & 'notify()' Methods
Deamon Threads
Thread Dump
Blocking Queues *
Thread Safe Collections *
Callable & Futures *
Executors *
Cyclic Barrier *
Exchanger *
CountDownLatch *
Semaphore *
Locks *
Graphical programming and event handling
Introduction
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 Components *
The JTree Component *
The JTable Component *
Input/output programming
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 *
The 'Path' Class *
The 'FileRef' Interface *
Comparing Files *
Checking Files *
The 'FileChannel' Class *
The 'Attributes' Class *
The 'FileSystem' Class *
The 'PathMatcher' Class *
Files Iteration *
The Watch Service API *
Collection framework
Introduction
Performance
Set
List
Queue
Map
Java Classes Libraries
Calendar Class
Wrapper Classes
Locale Class
ResourcesBundle Class
DateFormat Class
NumberFormat Class
Java and XML
Introduction to XML in J2SE
Service Oriented Architecture
RSTful Web Services
SOAP Web Services
The WSDL Language
Java API for XML Web Services (JAXWS)
The @WebService Annotation
The wsgn Utility
Web Service Deployment
Web Service Client
The wsimport Utility
Java Architecture for XML Binding (JAXB)
The xjc JAXB Binding Compiler
REpresentational State Transfer Web Services (REST)
What is REST?
Stateless Services
HTTP Operations
Unifeid Resource Identifier
XML Documents
Java API for XML Processing (JAXP)
JAXP Overview
Simple API for XML (SAX)
DOM API for XML (DOM)