| 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. |
| Platform independence |
A brief look at Virtual Machine concepts and the different versions of Java that are available. |
| Frontline security |
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 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. |
| Class loaders |
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. |
| Java threading |
Threading vs multi-tasking theory, the Thread class and Runnable interface, interrupting and stopping threads, thread safety through synchronisation, worker thread pattern. |
| Java networking |
Sockets theory, server and client sockets, working with sockets in multi-threaded applications, and sockets and exceptions. |
| Java strings |
Strings, StringBuffer and StringReader, tuning String manipulation, comparisons and internationalisation. |
| Optimising Java applications |
Profiling, JDK features, object creation and deletion, exceptions, casting, variables and threading issues. Strategies for altering user perception on timing issues etc. |