Intermediate - Advanced Java 11 Training in Somerville
| 
                	 We offer private customized training for groups of 3 or more attendees.
                 | ||
| Course Description | ||
| This is a modern, 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. 
                        Course Length: 5 Days Course Tuition: $2250 (US) | ||
| Prerequisites | |
| Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions | |
| Course Outline | 
| 
	Preface: Java State of the Union 
	Java Release Cycle 
	New Java Versions 
	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 
	Date and Time API 
	New Language Features 
	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 (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 
	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 
	Stream Processing 
	Filtering, Sorting, Mapping 
	Terminal Operations 
	Collectors 
	Concepts 
	Partitioning and Grouping 
	Session 12: Introduction to Modules 
	Motivation and Overview 
	Types of Modules 
	Modular JDK 
	Our Approach 
	Session 13: Working with Modules 
	Defining and Using Modules 
	Services 
	Compatibility and Migration 
	Conclusion | 
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
- RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II 
 8 December, 2025 - 11 December, 2025
- Object-Oriented Programming in C# Rev. 6.1 
 17 November, 2025 - 21 November, 2025
- RHCSA EXAM PREP 
 17 November, 2025 - 21 November, 2025
- Fast Track to Java 17 and OO Development 
 8 December, 2025 - 12 December, 2025
- RED HAT ENTERPRISE LINUX SYSTEMS ADMIN I 
 3 November, 2025 - 7 November, 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... | 






