Course Code
javaadvanced
Duration
7 hours (usually 1 day including breaks)
Requirements
Good knowledge of Java and OOP like interfaces, inheritence, polymorphism, generics, collections, recursive mehtods, using annotations and varargs.
Overview
Introduces contect for Advanced java programmers, usually developing large scale applications, frameworks or libraries.
This course is mostly labs (around 60%), the rest is discussions and presentation.
We mostly use the newest version of Java for this course, but it can also be delivered as a private course on older versions of Java.
Course Outline
Generics
- Why, when and benefit/cost of Genercis
- Type Erasure
- Type Boundaries
- Wildcards
- Generic Methods
Multithreading
- Java Thread System
- Managing Threads
- Interacting with Threads and Thread State
- Thread Synchronization
- Volatile Fields and Synchronized Methods
- wait and notify pattern
- join and sleep pattern
- Concurrency API
- Atomic Operations
- Thread Pools
Reflection
- When to use and when not to use reflection
- Uses for Meta-Data
- The Reflection API
- The Class<T> Class
- The java.lang.reflect Package
- Reading Type Information
- Navigating Inheritance Trees
- Dynamic Instantiation
- Dynamic Invocation
- Reflecting on Generics
- Accessing private fields using reflection
Annotations
- Aspect-Oriented Programming (AOP)
- Built-In Annotations
- Annotations Model
- Annotation Types and Annotations
- Annotations vs. Descriptors (XML)
Multi process communication
- Shared memory
- Socekts
- Non-Blocking Sockets
- TCP
- URL Objects
- HTTP and Other TCP Servers
- Datagram Clients and Servers
- Multi-Threading in Servers





















.png)















_ireland.gif)



.png)


.jpg)



.png)
