Objectives of the training
Acquire the skills and knowledge necessary to master the advanced features of the Java Standard Edition platform.Targeted audience
Developers, designers, and technical architectsPrerequisite
Solid foundation in OOP (inheritance, polymorphism, encapsulation). Good level of knowledge of collections and generics. Knowledge of basic multithreading. File reading/writing and object serialization. Familiarity with software architecture concepts (MVC, layers, modularity). Basic knowledge of using an IDE (Eclipse, IntelliJ, VSCode).Trainers
Benefits for Participants
• Master advanced Java SE concepts and features
• Deepen your understanding of certain aspects of the language and its evolution (from Java SE 5 to Java SE 8)
• Develop applications in multi-threaded, concurrent environments
• Implement different object communications
• Master synchronous and asynchronous communication APIs
• Manipulate data persistence with JPA
• Internationalize your applications
• Benefit from feedback on recurring issues
Course architecture
Aspects of the JVM, Java Virtual Machine
• Mechanisms related to the JVM to ensure security
• Security model: permissions, policies, and security domains
• Security manager and access control
• Class loading mechanisms
• Development of specific class loaders
Evolutions in Java syntax
• Review of evolutions from Java 5 to Java 8
• Switch control structures with String objects
• Making literal values easier to read
• String processing and regular expressions
• Practical work
Review of generics, collections, and developments
• New collections
• Diamond operator and type inference
• Possible removal of warnings when using varargs
Error handling
• Review of assertions
• Testing with Junit
• Handling multiple exceptions in the catch clause
• Try-with-resources operator
• Practical work
Persistence with Hibernate and JPA
• Review of data access, JDBC, and DAO
• Hibernate and JPA software architecture
• Hibernate and JPA technical architecture
• Setting up the environment
• Objects and different mappings
• Hibernate QL and JQPL query languages
• Practical work
Introduction to the Spring framework
• The different Spring modules
• Dependency injection (IoC)
• Connection pools and transactions
• Integration with Hibernate
• Spring MVC - General architecture: controllers, dispatchers, and handlers
• Practical work
Concurrent programming
• Implementing threads. Thread lifecycle. Thread scheduling.
• Thread synchronization. Locking methods and instructions (synchronized). Monitors
• Principles and problems in designing multithreaded applications
• The concurrent library. New collections
• New synchronization tools: shared/exclusive locks, semaphores, cyclic barriers
• Using the Fork/Join framework
• The Phaser class
• Practical work
Reflexive programming
• Objectives and principles
• Class loading. The Class object
• Dynamic discovery of information (properties and methods) relating to a class or object
• Dynamic instantiation
• Invoking a method
• The reflexivity of annotations
Introduction to functional programming
• Objectives and principles
• Lambda expressions
• Functional interfaces
• Practical work
Communication via JMS (Java Message Service) messages
• Introduction to MQ and JMS architecture: Files, Topics, Queues, MQ servers
• Point-to-point communication with Queues
• Publish/Subscribe communication with Topics
• Practical work
Pedagogical details
Type of training
Private or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quotePrivate or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quote