Description
This training has a dual objective. On the one hand, delve deeper into certain advanced aspects of the language (generic types, annotations, reflective programming, class loading). On the other hand, present a synthetic overview of the main libraries concerning the following themes: Thread management, communications via the network, administration and supervision of applications. This course also emphasizes associated architectural techniques.
Who is this training for ?
For whom ?
Developers, engineers, project managers close to development.
Prerequisites
Good knowledge of the Java language. Experience required in Java programming.
Training objectives
Training program
- Some advanced aspects of the language
- The Inner Classes.
- Anonymous classes.
- The covariant redefinition of methods (jdk1.
- 5).
- The new for loops (jdk1.
- 5).
- The Import Static (jdk1.
- 5).
- Auto-boxing, auto-unboxing (jdk1.
- 5).
- The varargs (jdk1.
- 5).
- Enumerated types (jdk1.
- 5).
- Usage and definition.
- Generic types (jdk1.
- 5) .
- The use and definition of simple generic types.
- Genericity and the subtyping relationship.
- Generic types at runtime , generic types and instantiation, generic types and arrays.
- Generic methods.
- The simultaneous use of generic and non-generic types.
- Annotations (jdk1.
- 5 and jdk1.
- 6).
- Principles.
- Predefined annotations (
- override,
- deprecated,
- generated.
- ).
- The definition of new annotations.
- Meta-annotations (
- Retention,
- Target,
- Documented,
- Inherited).
- Reflexive use of annotations.
- .
- Wildcard support in the classpath (jdk1.
- 6).
- New features on collections (jdk1.
- 5 and jdk1.
- 6): Queues, ConcurrentMap.
- Practical work Using types generics and annotations.
- Concurrent programming
- Definitions relating to concurrent programming: Threads.
- The creation/destruction of Threads.
- Scheduling of Threads.
- The synchronization of Threads.
- The locking of methods and instructions (synchronized).
- Monitors.
- Methodological principles for the design of multithreaded applications.
- The problems posed by multithreaded programming.
- The deadlock problem (characterization, avoidance, prevention, detection).
- The starvation problem.
- The JDK1 competing library.
- 5.
- The new collections.
- The new synchronization tools: shared locks /exclusives, semaphores, cyclic barriers.
- Practical work rnConstruction of a concurrent application with synchronization and deadlock resolution.
- Socket communication
- Reminders of the main network concepts.
- Programming in non-connected mode (by datagram).
- The Peer to Peer model.
- Communication in connected mode (by stream).
- The client/server model.
- Sequential server vs concurrent server.
- Use of serialization.
- The nio library.
- Buffers, channels.
- Selectors and their use.
- Practical work Programming of the case study in client-server mode (sequential and concurrent).
- Communication by remote method invocation: RMI
- The general principles.
- The base classes.
- The naming service.
- The client and server development process .
- Security and class loading constraints.
- Practical work Programming the case study using RMI.
- Communication by messages: JMS
- The general principles of communication by messages.
- The concepts of JMS, the interfaces and the corresponding classes.
- The different forms of messages.
- Communication in point-to-point mode.
- Communication in publish/subscribe mode.
- Practical work Programming from the case study to the JMS help.
- Security and class loading
- The advanced and lesser-known aspects of the JVM.
- The mechanisms related to the JVM to ensure security.
- The security model of Jdk1.
- 2: permissions, policies, security domains.
- The security manager and the access controller.
- The class loading mechanisms.
- The development of specific class loaders.
- Presentation of JMX (Java Management Extension)
- The distinction between the application to be administered and the administration application.
- The concepts of JMX: MBean, MBeanServer, Agent, Connector.
- The JMX API.
- The implementation of the different categories of Mbeans (standard, dynamic, model).
- The use of adapters and connectors.
- Administration consoles.
- Practical work Setting up an administration-supervision layer for the case study.
- Reflective programming
- Objectives and principles.
- Class loading.
- The Class object.
- Dynamic discovery of information (properties and methods) relating to a class or an object.
- Dynamic instantiation.
- Invoke a method.
- The reflexivity of annotations in Java 5.