Type to search LearningTree.com

Do you mean "{{response.correctedQuery}}" ?

Sorry, no results were found for your query.

Please check your spelling and try your search again.

 

Java Programming Training









Preferred method of contact?

Java Best Practices and Design Patterns

COURSE TYPE

Practitioner

Course Number

516

Duration

4 Days

Enroll

About This Course: Java provides features to build robust, secure and responsive applications. Knowledge of the language alone is not enough to exploit the full power of Java. Developers must take advantage of proven best practices and industry-standard software development techniques. This course provides the skills needed to solve real-world software development problems and deliver fast, reliable applications.

You Will Learn How To

  • Employ best practices to build reliable and scalable Java applications
  • Effectively apply Test-Driven Development to enhance program maintainability
  • Solve architectural problems with proven design patterns
  • Write robust threaded applications and avoid concurrency hazards
  • Profile an application and identify performance bottlenecks

Important Course Information

Requirements:

  • Knowledge at the level of:
  • Three to six months of Java programming experience
  • You should be able to:
    • Understand Java classes, the inheritance model, polymorphism, and encapsulation
    • Use fundamental standard edition Java APIs
    • Apply object-oriented analysis and design, including defining classes and creating objects

Course Outline

  • Effective Programming in Java
  • Clarifying the goals of best practices
  • Identifying the key characteristics of high-quality software
  • Organizing classes, packages and subsystems into layers
  • Designing to the principles of SOLID
  • Applying Test-Driven Development

Exploiting a testing framework

  • Composing and maintaining JUnit tests
  • Taking advantage of advanced JUnit features
  • Testing in the presence of exceptions

Monitoring software health using logging libraries

  • Configuring logging with log4j and SLF4J
  • Minimizing the impact of logging on performance

Creating matchers and mock objects

  • Writing custom Hamcrest matchers
  • Testing with fake objects and mocks
  • Leveraging Design Patterns

Employing common design patterns

  • Observer
  • Iterator
  • Template method
  • Strategy
  • State
  • Singleton
  • Data Accessor Object
  • Data Transfer Object
  • Composite
  • ServiceLocator
  • Proxy
  • Factory

Refactoring legacy code

  • Identifying reasons to change software
  • Clarifying the mechanics of change
  • Writing tests for legacy classes and methods
  • Extending Applications with Java Meta Programming

Improving type safety with generics and enum types

  • Creating generic classes and methods
  • Navigating generic class hierarchies
  • Implementing enum types for fixed sets of constants

Adding metadata by writing annotations

  • Leveraging the built-in and custom annotations
  • Annotating with meta-annotations

Modifying runtime behavior with reflection

  • Retrieving class and method data dynamically
  • Flagging methods with naming conventions
  • Adding information to code with annotations
  • Assessing disadvantages of reflection
  • Tuning for Maximum Performance

Measuring and improving performance

  • Assessing response time
  • Conducting load and stress tests
  • Specifying strategies for improving performance

Exploiting garbage collectors

  • Exploring garbage collection metrics
  • Choosing appropriate algorithms for garbage collection
  • Avoiding the hazards of finalizers
  • Preventing memory leaks with reference types

Taking full advantage of threads

  • Writing reliable thread-safe code
  • Avoiding race hazards and deadlocks
  • Employing the Executors framework

Bulletproofing a threaded application

  • Synchronizing and sharing data between threads
  • Managing the performance implications of synchronization

Exploring alternatives to synchronization

  • Taking advantage of the volatile modifier
  • Eliminating data sharing with ThreadLocal variables
  • Architecting for Separation of Concerns

Allocating responsibilities to components

  • Translating method calls with the adaptor pattern
  • Adding behavior with a proxy

Centralizing the creation of objects

  • Employing factories to achieve loose coupling
  • Implementing Inversion of Control (IoC)
Show complete outline
Show Less

Course Schedule

Attend this live, instructor-led course In-Class or Online via AnyWare.

Hassle-Free Enrollment: No advance payment required.
Tuition due 30 days after your course.

Dec 13 - 16 Rockville, MD/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Jan 10 - 13 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Feb 7 - 10 AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare

Feb 28 - Mar 3 Alexandria, VA/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Mar 28 - 31 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

May 2 - 5 New York/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

May 23 - 26 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Jun 6 - 9 AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare

Jul 25 - 28 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Aug 22 - 25 Alexandria, VA/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Sep 19 - 22 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Oct 10 - 13 AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare

Oct 24 - 27 Ottawa/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Oct 31 - Nov 3 New York/AnyWare Enroll Now

How would you like to attend?

Live, Online via AnyWare
In-Class

Guaranteed to Run

Show all dates
Show fewer dates

Bring this Course to Your Organization and Train Your Entire Team
For more information, call 1-888-843-8733 or click here

Tuition

Standard

$2990

Government

$2659

Course Tuition Includes:

After-Course Instructor Coaching
When you return to work, you are entitled to schedule a free coaching session with your instructor for help and guidance as you apply your new skills.

After-Course Computing Sandbox
You'll be given remote access to a preconfigured virtual machine for you to redo your hands-on exercises, develop/test new code, and experiment with the same software used in your course.

Free Course Exam
You can take your course exam on the last day of your course and receive a Certificate of Achievement with the designation "Awarded with Distinction."

Prev
Next

Questions

Call 1-888-843-8733 or click here »

An experienced training advisor will happily answer any questions you may have and alert you to any tuition savings to
which you or your organization may be entitled.

Training Hours

Standard Course Hours: 9:00 am – 4:30 pm
*Informal discussion with instructor about your projects or areas of special interest: 4:30 pm – 5:30 pm


FREE Online Course Exam (if applicable) – Last Day: 3:30 pm – 4:30 pm
By successfully completing your FREE online course exam, you will:

  • Have a record of your growth and learning results.
  • Bring proof of your progress back to your organization
  • Earn credits toward industry certifications (if applicable)
  • Make progress toward one or more Learning Tree Specialist & Expert Certifications (if applicable)

Enhance Your Credentials with Professional Certification

Learning Tree's comprehensive training and exam preparation guarantees that you will gain the knowledge and confidence to achieve professional certification and advance your career.

Earn 23 Credits from NASBA

This course qualifies for 23 CPE credits from the National Association of State Boards of Accountancy CPE program. Read more ...

“Our Java programming instructor was highly qualified...his presentation was informative and precise. He even took the time to answer the questions of individual students. Great Job!”

- R. Storey, Software Engineer II
GTECH Corp.

Prev
Next
s