Course overview
Do you want to deepen your knowledge of Java and become an expert in advanced programming?
This course is tailored for those who already know the basics and want to take the next step towards professional development with Java.
You will learn:
- Design Patterns in Practice
Learn to use proven design patterns to write robust, scalable, and maintainable code.
- Managing XML files efficiently
Discover techniques for working with XML – both for configuration and data storage.
- High-performance multi-threaded applications
Create advanced programs with traditional thread classes and the Executor Framework.
- Network Programming & Distributed Systems
Understand the basics of network communication and how to build distributed RMI applications.
- JavaBeans
Learn how to create reused components.
- Code Analysis and Performance Optimization
Finally, the course includes methods for analysis of existing classes, optimization of existing code and performance measurement for Java applications.
Course Objective
- Writing efficient Java code
- Understand how Java works in depth
- Applying design patterns in Java
- Building robust changeable systems
- Create advanced multi-threaded applications
- Using different Java techniques for handling XML files
- Create distributed client/server solutions
- Creating reusable components
- Managing performance measurement tools
Target Group
Java-savvy programmers, systems engineers and project managers who want to build advanced systems that exploit the full potential of Java.
Prerequisites
Knowledge of Java programming and basic knowledge of object orientation.
Certification
This course does not have any associated certification. Each participant who completes the course receives a course certificate.
Trainer
This course is delivered in collaboration with one of Informator’s partners.
More about the course
Course content
1. design patterns
- Advanced object orientation with Java and UML
- Creating patterns
- Structural patterns
- Behavioral patterns
- Application of design patterns in the Java standard library
2. Threaded programming with Java
- Runnable interface and Thread class
- Synchronization: synchronized, wait, notify, notifyAll
- Technology for wire-secure code
- The primitives behind wire management
- Rules for variables and locks
- Producer-Consumer design patterns
3. Executor Framework
- Framework java.util.concurrent
- Executor and ExecutorService
- The Callable interface
- Future and FutureTask interfaces
- Specially designed classes: Semaphore, CountDownLatch, CyclicBarrier, Exchanger
- Thread-safe collection classes: BlockingQueue, DelayQueue ConcurrentHashMap
- Lock: Lock, ReadWriteLock, ReentrantLock, Condition
- Atomic variables
- Fork/Join framework
4. Java and XML
- XML: Text-based standard for data
- JAXP, JAXB: Java support for handling XML
- Validation of XML documents with DTD, XML Schema
- Techniques for parsing XML in Java: SAX, DOM
- Manipulating XML-based data in Java
- XML for configuration and processing of Java applications
- Techniques for reading and writing XML with StAX
5. New I/O
- Package java.nio
- Performance improvements compared to java.io
- Classes for Effective Two-Way Communication
- Channels
- Buffers
- Direct transfer between streams via underlying OS
- NIO2 Accessing the underlying File System
6. Network programming with Java
- ServerSocket and Socket
- Setting up a server
- Connecting to server from client
- Two-way communication over Socket connection
- ServerSocketChannel and SocketChannel for non-blocking communication
7. Distributed services
- Distributed services
- Register for accessing services
- RMI – Remote Method Invocation
- Implementation of RMI service
- Registration of RMI object in rmiregistry on server
- Calling RMI objects via name service
- CORBA
- WebServices
8. Java Deep Dive
- Reflection
- ClassLoaders
- Security
9. JavaBeans
- Software components
- JavaBeans definition and properties
- Attribute: Normal, Indexed, Bound, Constrained
- PropertyChangeSupport / VetoableChangeSupport
- Callback procedures for event listeners
- Serialization to XML format
- JavaBeans and JSP
- Enterprise Java Beans (EJB)
10. Performance
- Optimization
- Java execution environment
- Java’s memory allocation
- Compiler technology
- JWC parameters
- Automatic memory recovery