This course designed to introduce developers who are or not familiar with Object Oriented languages to the Java language.
Designed by software developers for software developers, this course aims to bring to the software developer a pragmatic view of the language. The student will not only learn how to program in Java, but also best practices, how to use the class libraries and software patterns the Java way. This course focuses on the fundamentals of software engineering with a Java perspective
|A basic programming background and some experience with Object Oriented concepts would be beneficial.
|Delegates will learn:
|How to write; basic Java applications, define well formed classes, stable code bases, effective string manipulation routines, dynamic class loading applications, multi-threaded applications, and basic sockets applications. Students will also learn some basic debugging and optimisation techniques, effective resource management, core Java libraries and how to construct their own frameworks. At the end of this course a student would be well qualified to sit the Java programmer exam.
|This course is suitable for customization to meet your needs
|Network centric architecture
|Examine why they call Java the lingua franca of the network. In this introduction to the language we look at the history and architecture of the language.
|A brief look at Virtual Machine concepts and the different versions of Java that are available.
|We look at the 3 levels of security available to Java developers, built-in, programmatic and config file based.
|Java program structure
|The basic structure of a Java program and application are examined.
|Datatypes and fundamentals
|Core language data types such as int, short and double are introduced.
|Declarations and access control
|Core language features for declaring data types and variables and specifying access modifiers.
|Flow control and exceptions
|A complete list of java keywords (for, while etc.) as well as working with exceptions.
|Working with objects
|An examination of a Java object’s lifecycle; loading, linking and verification. What is a Java class, how is a class initialised, constructors, the initialisation of field members, and basic garbage collection theory.
|Working with classes
|Abstract classes and inheritance.
|Working with interfaces
|What is an interface and how is it different to a class? Moving away from inheritance to interfaces only.
|Dynamic linking and resolution, class loader theory, and writing class loaders.
|IO and Streams
|Difference between byte streams and character streams, working with source/sinks, streams and processors.
|Threading vs multi-tasking theory, the Thread class and Runnable interface, interrupting and stopping threads, thread safety through synchronisation, worker thread pattern.
|Sockets theory, server and client sockets, working with sockets in multi-threaded applications, and sockets and exceptions.
|Strings, StringBuffer and StringReader, tuning String manipulation, comparisons and internationalisation.
|Optmizing Java applications
|Profiling, JDK features, object creation and deletion, exceptions, casting, variables and threading issues. Strategies for altering user perception on timing issues etc.