Intermediate and Advanced Java 8 Training in Haverhill
| 
                	 We offer private customized training for groups of 3 or more attendees.
                 | ||
| Course Description | ||
| This is a fast-paced course suitable for developers with some previous
experience in working with Java and Object-Oriented (OO) programming.
The course can also be delivered to developers experienced in other OO
languages (Python, C++, C#) but with limited Java exposure, as well as
used as an advanced Java course for more experienced developers. There
are numerous optional parts allowing you to tailor the coverage to your
group.  It includes an accelerated, yet thorough hands-on review of Java
foundational concepts, with attention given to OO design and
implementation principles. It then moves on to comprehensive coverage of
more advanced topics in Java and OO development to provide participants
with a strong grounding to use Java in a sophisticated and productive
manner.  This course covers far more than an introductory course,
including important topics such as UML and Design Patterns, and using
composition vs. inheritance, which are all key to creating
well-structured OO systems. After these important areas, it moves on to
advanced Java topics such as inner classes, reflection, writing generic
classes, and functional programming with lambdas and streams. It teaches
a number of useful techniques that enhance productivity and good system
design - which may otherwise take Java developers years to absorb on
their own. The course concludes with build tools and logging. 
                        Course Length: 5 Days Course Tuition: $2250 (US) | ||
| Prerequisites | |
| Solid understanding of OO concepts in Java. | |
| Course Outline | 
| 
	Session 1: Review - Basics 
	Java Environment 
	Classes and Objects 
	Instance Variables, Methods, Constructors, Static Members 
	OO Principles: Data Encapsulation, Cohesion 
	Object Contracts: toString(), equals() and hashCode(), Comparable and Comparator 
	Packages, Enums, Arrays 
	Exceptions 
	Session 2: Review (Inheritance and Interfaces) 
	UML Overview 
	Inheritance 
	Definition and IS-A Relationship 
	Method Overriding, @Override 
	OO Principles: Principle of Substitutability, Polymorphism and Encapsulation of Type, Coupling, Open-Closed Principle 
	Constructor Chaining 
	Interfaces 
	Defining and Implementing, Interface Types 
	Interface Inheritance 
	New Interface Features in Java 8 
	Default Methods, Static Methods 
	Functional Interfaces 
	Guidelines 
	Session 3: JUnit 
	Overview 
	Tests, Assertions, and Fixtures 
	Writing and Running Tests 
	Assertions 
	Test Fixtures, @Before and @After, @BeforeClass and @AfterClass 
	Testing for Exceptions 
	Best Practices and Test-Driven Development Overview (TDD) 
	Session 4: Collections and Generics 
	Collections Overview 
	Generics and Type-Safe Collections 
	Diamond Operator 
	Lists, Sets, and Maps 
	Interfaces and Contracts 
	Iteration and Autoboxing 
	Utility Classes - Collections and Arrays 
	Writing Generic Classes 
	Inheritance with Generic Types 
	Wildcard Parameter Types 
	Type Erasure 
	Session 5: Techniques of Object Creation 
	Design Patterns Overview 
	Controlling Object Creation 
	Limitations of new Operator, Alternative Techniques 
	Singleton Pattern 
	Simple Factory 
	Factory Method Pattern 
	Other Techniques 
	Named Objects, JNDI 
	Dependency Injection Frameworks 
	Session 6: Using Composition and Inheritance Effectively 
	Inheritance and Composition - Pros and Cons 
	Composition and Delegation 
	HAS-A, USES Relationships 
	Strategy Pattern 
	Decorator Pattern 
	Façade and Other Patterns 
	Façade, Proxy, Template Method 
	Session 7: Inner Classes 
	Overview and Motivation 
	Stronger Encapsulation, Rules and Caveats 
	Defining and Using Inner Classes 
	Member-Level, Method-Local, Anonymous Classes 
	Static Nested Classes 
	Nested Classes, Nested Interfaces, Nested Enums 
	Session 8: Annotations 
	Overview 
	Using Annotations 
	Target and Retention Policy 
	Annotation Parameters, Parameter Shortcuts 
	Writing Custom Annotations 
	Syntax, Using the Meta-Annotations 
	Using a Custom Annotation 
	Session 9: Reflection 
	Overview and API 
	The Class Called Class 
	Obtaining and Inspecting Class Objects 
	Working with Objects Reflectively 
	Creating Instances, Invoking Methods, Setting Field Values 
	Session 10: Lambda Expressions 
	Overview 
	Functional Interfaces and Lambdas 
	Target Context 
	Using Lambda Expressions 
	Syntax, Lambda Compatibility 
	Variable Capture 
	Type Inference 
	Method References 
	Three Types of Method References 
	Refactoring Lambdas into Method References 
	Session 11: Streams 
	Overview 
	Streams vs. Collections 
	Anatomy of a Stream 
	Understanding the Stream API 
	Intermediate Operations and Stream Pipeline 
	Java 8 Functional Interfaces: Predicate, Comparator, Function, Consumer, Supplier 
	Stream Processing 
	Filtering, Sorting, Mapping 
	Terminal Operations 
	Collectors 
	Partitioning and Grouping 
	Reducing and Summarizing 
	Downstream Reductions 
	Session 12: Date/Time API 
	Overview 
	Dates, Times, and Instants 
	Creating, Parsing, and Formatting 
	Accessing Date and Time Fields 
	Deriving New Values 
	Time Zones 
	Periods and Durations 
	Intervals of Time: Date-Based and Time-Based 
	Adding and Subtracting Intervals 
	Session 13 (optional): Overview of Build Tools 
	Javadoc 
	Generating API Documentation 
	Doc Comments and Doc Tags 
	Ant 
	History and Overview 
	Buildfiles, Targets, and Tasks 
	Maven 
	Maven Concepts: Project, POM, Artifact, Naming, Dependency, Plugin, Repository 
	Convention over Configuration 
	Lifecycles and Phases 
	Plugins and Goals 
	Session 14 (optional): Logging and Log4j 
	Overview 
	Popular Logging Frameworks 
	Writing Log Messages 
	Creating Loggers and Writing Log Messages 
	Log Levels 
	Configuration 
	Appenders and Layouts 
	Logger Configuration and Logger Hierarchy | 
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- AI Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Azure Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Data Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- SAS Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
- RHCSA EXAM PREP 
 17 November, 2025 - 21 November, 2025
- VMware vSphere 8.0 Skill Up 
 27 October, 2025 - 31 October, 2025
- RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II 
 8 December, 2025 - 11 December, 2025
- RED HAT ENTERPRISE LINUX SYSTEMS ADMIN I 
 3 November, 2025 - 7 November, 2025
- Fast Track to Java 17 and OO Development 
 8 December, 2025 - 12 December, 2025
- See our complete public course listing 
Java Programming Uses & Stats
| Difficulty | Popularity | Year Created1995 | 
| Pros 
	Most Commonly Used:  
	Great Career Choice:  
	Android Apps Development: 
	It Can Run On Any Platform: 
	Great Supporting IDE's: | Cons 
	Uses a Lot of Memory: 
	Difficulty in Learning:  
	Slow Start Up Times: 
	Verbose and Complex Code: 
	Commercial License Cost: | 
| Java Programming Job Market | 
|   Average Salary |   Job Count |   Top Job Locations 
	New York City  | 
| Complimentary Skills to have along with Java Programming - If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally. As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development. Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings... | 






