Call for Latest Dates
Call us on 0870 7777 388 for availability on this course.
Have questions or need a better city/date? Ask now.
|
Course Overview Java is now a mature language. With the advent of Java 5 and now Java 6, the language has seen profound improvements of which not all developers are aware. This course highlights those improvements, as well as delving into a range of topics that an experienced Java developer needs, such as design patterns, logging and testing frameworks, performance and concurrency issues: skills that underpin best Java development project practice worldwide. All exercises and examples are designed to achieve the maximum benefit for delegates. They aim to effectively demonstrate the advanced concepts covered in the course and provide an opportunity to experiment with them; many of the exercises develop custom API's which encapsulate complex functionality that can be used in numerous real world applications.! This course has been developed for real-world, commercial scenarios by our expert instructors. See below for detailed syllabus. Audience IT professionals who already have some Java experience and are looking to further their skills or resolve any issues they may have with the more complex areas of its use. Skills Gained - Advanced language concepts, including generics, enumerations and other Java 5 additions to the Java language.
- A solid grounding in use of Java for distributed programming, including web techniques.
- Best practices, including use of open source frameworks and techniques that are now mainstream project standards.
- How to use design patterns effectively and apply them in practical contexts.
Prerequisites Java knowledge (to the level of our JavaSE course or similar). Course Outline Improvements to the Java Language - Exploiting type-safe Collection classes with generics
- Writing your own generified, flexible classes
- How to minimize casting with autoboxing
- Annotations for improving compiler effectiveness
- Providing your own annotations
- Effective string processing with regular expressions
- Flexible parameter lists with varargs
- Farewell to lists of constants: enumerations
Maintainability ; Extensibility with Design Patterns - Beyond simple OO
- Why new is not always best: creational patterns
- One and only one instance with Singleton
- Controlling what you create with Factory Method
- Improved object relationships: structural patterns
- Bridging divides with Adapter
- When inheritance is not enough: Decorator
- Object oriented algorithms: behavioural patterns
- Divide and rule with Command
- Event-driven processing: Observer
- Applying State and Strategy
- Enforcing lifecycles with Template Method
Logging Best Practice - System.out.println considered harmful
- Controlling message destinations
- Filtering messages by severity
- Choices of logging framework: Java native logging versus log4j
- Avoiding commitment: Apache
- Commons Logging
- Creative applications for logging
Optimizing the Java Development Lifecycle - Beyond simple build management with ANT
- Incorporating and automating project-wide testing
- Enforcing code quality standards
- Gathering metrics
- Spotting anti-patterns
- Further automation with Maven
- Controlling dependencies
- Maven and IDE integration
- Configuration management with SubVersion
New features of Java - JUnit: testing framework and philosophy
- Testing best practice
- Improved test management with annotations
- Container-based testing for enterprise Java components
Approaches for Distributed Applications - Java's raw networking capabilities
- Simplifying access to networked resources:
- URL and URLConnection
- Improved remote method invocation (RMI) and macro frameworks - Web client/server architectures
- Apache HttpClient
- Web containers: Apache Tomcat
Designing Secure Applications - Locking down the JVM with policy-based security
- Implications of security for writing Java code
- Authentication and authorisation in enterprise Java environments
- High Performance Java
- Tools for profiling your Java code
- Analysing response times and bottlenecks
- Automating load and stress testing
- High-performance IO for files and networks: java.nio.
- Common performance-related coding issues
- Configuring the JVM for best performance
- Managing and monitoring Java applications with JMX
- Concurrency Utilities
- Thread-safe building blocks: the java.util.concurrent* packages
- Scheduling and synchronizing tasks
- Implementing highly scalable concurrent algorithms
Associated Courses - JavaFX Script Training Course
- JavaFX Mobile Training Course
- JavaSE (J2SE) Training Course
- Advanced Java SE Training - Advanced Programming Techniques & Design Patterns Workshop
- JavaEE (J2EE) Training Course
- JavaME (J2ME) Training Course
- JavaME (J2ME) Upgrade for Java Programmers
- JavaEE (J2EE) Design Patterns & Architecture
- JavaEE (J2EE) Architecture - 1 day overview
- Enterprise Workshop with Struts Training Course
- Web Enterprise Development Workshop with Spring Framework Training
- JBoss J2EE Application Server Administration Training
- Hibernate training course
- SOA & ESB - Service Oriented Architecture & Enterprise Service Bus Training
- IBM Visual Age for Java Training Course
- Websphere Application Server Training Course
- Weblogic / J2EE Training Course
- Weblogic Upgrade Training Course
How to make a booking for the JAV0020 course
|