We may earn an affiliate commission when you visit our partners.
Course image
Dr. Seán Kennedy OCA, OCP

[UPDATE January 2025] - 2 OCP Certification Quizzes added. As per Oracle OCP certification tests, each quiz contains 50 questions; has a time limit of 120 mins and requires 68% to pass.  Every question is explained with a video solution and in numerous cases I delve into code to further enhance the explanation. Even if you do not intend to do a Certification exam, these solution videos present lots of valuable information and therefore, provide many excellent learning opportunities.

Read more

[UPDATE January 2025] - 2 OCP Certification Quizzes added. As per Oracle OCP certification tests, each quiz contains 50 questions; has a time limit of 120 mins and requires 68% to pass.  Every question is explained with a video solution and in numerous cases I delve into code to further enhance the explanation. Even if you do not intend to do a Certification exam, these solution videos present lots of valuable information and therefore, provide many excellent learning opportunities.

[UPDATE June 2024] - Spring Boot 3 added. I have added a Spring Boot v3 application. Topics include: configuring the application (including its dependencies); how RESTful applications work and how dependency injection and inversion of control operate. I walk through the code in detail and demonstrate it in action with Postman. An assignment is also included and I explain the solution in detail.

[UPDATE September 2023] - Java 21 added. Java 21 has now been officially released. Among its topics include the eagerly anticipated "Unnamed classes and instance main methods". In addition, other topics include sequenced collections; record patterns and pattern matching for switch.

[UPDATE April 2023] - MAJOR NEWS - this course has been selected by Udemy for inclusion in their Udemy Business program.

  • "Udemy Business is a curated (carefully chosen) selection of high-quality Udemy courses — like yours" [Udemy email]. 

  • "Only 3% of all courses are chosen for Udemy Business." [Udemy email].

Java has now 4 LTS (Long Term Support) releases: This course covers them all : it addresses advanced Java 8 programming in addition to Java 11, 17 and 21.

This course is a successor to my "Java 8 OCA (1Z0-808) Certification - Master the Fundamentals", which covers Java fundamentals in great detail. As a result, this course starts with lambdas i.e. fundamentals such as classes, interfaces, operators and methods are not in this course. It is important to realise that while familiarity with Java is helpful, certification is certainly not a pre-requisite.

This course starts with the advanced topics of Java 8 - lambdas, streams, collections, generics, concurrency etc.. There are assignments for lambdas, streams and collections.

Java 11 is then covered - LVTI, private interface methods, annotations, security and modules. Modules are examined in detail (with examples).

Java 17 is covered next - sealed classes, records, switch expressions, pattern matching and text blocks. A significant assignment covering all topics is included.

Lastly, Java 21 is covered - unnamed classes and instance main methods, record patterns, pattern matching for switch and sequenced collections. An assignment covering all topics that builds on the Java 17 assignment, is included.

All the code used throughout the course is available.

Topics are presented with both general understanding and certification in mind i.e. the course caters for both. Regarding certification, Java 8 OCP (1Z0-809), Java 11 OCP (1Z0-819) and Java 17 OCP (1Z0-829) are targeted. This course would be a great training support in conjunction with the excellent MCQ Certification tool from Enthuware (as there are no MCQ's on this course).

The theory of the topic is explained with lots of code examples used to reinforce the topic. The videos are annotated in detail to help the learner follow my explanations. Having access to the code is a great learning aid as you can get the code running and see what happens when you change it. In addition, the assignments/exercises are a great aid for learning.

Topics include:

Spring Boot Application:

  • configuring a Spring Boot application, including its dependencies

  • understanding how RESTful applications work

  • architecture overview

  • code explained in detail

  • testing the application with Postman

Java 21:

  • Unnamed classes and instance main methods

  • Record patterns

  • Pattern matching for switch

  • Sequenced collections

Java 17:

  • Sealed classes

  • Records

  • switch expressions and pattern matching

  • Text blocks

Java 11:

  • Modules

  • private interface methods

  • LVTI (local variable type inference)

  • Annotations

  • Security

Java 8 Advanced:

  • Lambda Expressions

  • Streams

  • Generics

  • Collections

  • Concurrency

  • JDBC

  • File IO

  • NIO.2

  • Serialisation

  • Localisation

2 x OCP Certification Quizzes

By way of background, I am a PhD-qualified University lecturer since 2002. For over a decade, I have taught Java on a bespoke Masters on behalf of a highly regarded software company.

I have recently co-authored two books on Java: "Learn Java with Projects" and "Java Memory Management: a comprehensive guide to garbage collection and JVM tuning". Both were co-authored with Maaike van Putten.

I love teaching and this course has all my experience in explaining advanced concepts of Java. In addition, I have a strong attention to detail which lends itself perfectly to the Oracle Java Certification exams.

Enroll now

What's inside

Learning objectives

  • Apply functional programming techniques in java i.e. lambda expressions (including method references) and streams.
  • Obtain the knowledge of many advanced java concepts such as concurrency, generics/collections, localization, jdbc and io/nio.2.
  • Master the important topics introduced java since java 8 e.g. modules, sealed classes, records, switch expressions, unnamed classes and instance main methods.
  • Acquire the skills to pass the java ocp exams.

Syllabus

Lambda Expressions
Lambdas - Introduction
Lambdas - using a custom Functional Interface (in code)
Lambdas - using Predicate (in code)
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers multiple Java LTS releases (8, 11, 17, and 21), providing a comprehensive overview of modern Java development
Includes Spring Boot 3 content, which is widely used for building Java-based web applications and microservices
Explores advanced topics like lambda expressions, streams, concurrency, and modules, which are essential for modern Java development
Includes OCP certification quizzes with video solutions, which can be valuable even for those not pursuing certification
Requires familiarity with Java fundamentals, as it builds upon knowledge taught in a prior course
Uses code examples and assignments to reinforce learning, which is helpful for practical application of concepts

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Advanced java & spring boot with ocp focus

According to learners, this course offers a comprehensive deep dive into advanced Java topics across multiple LTS versions (8, 11, 17, 21) and includes a valuable Spring Boot 3 module. Many students find the lectures to be clear and well-explained, appreciating the instructor's deep knowledge and ability to convey complex ideas. The code examples and assignments are frequently highlighted as practical and helpful for solidifying understanding. While the course is designed for those with existing Java fundamentals, reviewers suggest it provides a solid foundation for tackling OCP certification exams, especially with the newly added OCP certification quizzes being seen as a significant positive update. Some note that the pace is suitable for intermediate to advanced learners and might be challenging without prior Java basics.
Added Spring Boot content is a valuable addition.
"The new Spring Boot 3 section is a fantastic addition and very relevant for modern Java development."
"Really appreciate the inclusion of Spring Boot. It connects the advanced Java concepts to practical application development."
"The Spring Boot module was explained well, showing how to build a simple REST application."
Assignments aid in practicing concepts learned.
"The assignments challenged me to apply what I learned and were very helpful for retention."
"I liked that there were practical assignments after key sections like Lambdas and Streams."
"Working through the assignment solutions provided great insights into common pitfalls and best practices."
Regular updates keep the course current (Java 21).
"It's great to see the course regularly updated to include the latest Java versions like Java 21 and recent features."
"The instructor is clearly dedicated to keeping the content relevant, adding new modules like Spring Boot and OCP quizzes."
"Knowing the course covers Java 21 gives me confidence I'm learning the most current practices."
Code demonstrations reinforce learning effectively.
"The code examples provided are practical and directly illustrate the concepts discussed in the lectures."
"Running the code myself alongside the videos helped solidify my understanding significantly. Great demos."
"I found the hands-on coding parts extremely useful. Seeing the code in action made a big difference."
Course content is highly relevant for OCP exams.
"This course is perfect if you are studying for the Java OCP exams. It covers many required topics."
"The recent addition of OCP practice quizzes is a massive bonus and directly helps with exam preparation."
"While not solely an OCP course, it provides excellent depth on topics tested in the certifications."
Instructor explains complex topics clearly.
"The instructor is excellent and explains things very clearly. Complex topics are made accessible."
"I really appreciated how well the concepts were broken down. The explanations were easy to follow."
"The lecturer's style is very engaging and makes even advanced subjects understandable."
Pace is fast, requires prior Java knowledge.
"As advertised, this course assumes you know Java fundamentals. It starts advanced topics quickly."
"The pace can be fast at times, especially if you're not already comfortable with the Java basics it builds upon."
"This is definitely not for absolute beginners. Make sure you have a solid understanding of core Java first."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Java 21, Java 17, Java 11, Java 8 (adv.) and Spring Boot 3 with these activities:
Review Java Fundamentals
Solidify your understanding of Java fundamentals before diving into advanced topics. This will make it easier to grasp the more complex concepts covered in the course.
Show steps
  • Review basic syntax and data types.
  • Practice writing simple Java programs.
  • Study object-oriented programming principles.
Review 'Effective Java'
Improve your Java coding skills by studying industry best practices. This book provides a wealth of knowledge on how to write effective and efficient Java code.
Show steps
  • Read and understand the key principles in the book.
  • Apply the principles to your own Java projects.
Practice Lambda Expressions and Streams
Reinforce your understanding of lambda expressions and streams through practice exercises. This will help you become more comfortable using these powerful features of Java 8 and later.
Show steps
  • Solve coding challenges involving lambda expressions.
  • Implement stream pipelines to process data.
  • Experiment with different stream operations.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Write a Blog Post on Java Modules
Deepen your understanding of Java modules by writing a blog post explaining their benefits and usage. This will force you to organize your thoughts and communicate your knowledge effectively.
Show steps
  • Research Java modules and their purpose.
  • Outline the key concepts and benefits of modules.
  • Write a clear and concise blog post with code examples.
  • Publish the blog post on a platform like Medium or your own website.
Build a Simple REST API with Spring Boot
Gain hands-on experience with Spring Boot by building a REST API. This will help you understand how to configure a Spring Boot application, handle REST requests, and use dependency injection.
Show steps
  • Set up a Spring Boot project with necessary dependencies.
  • Define REST endpoints and request mappings.
  • Implement business logic and data persistence.
  • Test the API using Postman or a similar tool.
Review 'Java Concurrency in Practice'
Master Java concurrency by studying this classic book. This book provides in-depth coverage of concurrency concepts and techniques.
Show steps
  • Read and understand the core concepts of concurrency.
  • Study the different concurrency tools and techniques.
  • Apply the concepts to your own concurrent Java programs.
Contribute to a Java Open Source Project
Apply your Java skills by contributing to an open-source project. This will give you valuable experience working on real-world code and collaborating with other developers.
Show steps
  • Find a Java open-source project that interests you.
  • Study the project's codebase and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Java 21, Java 17, Java 11, Java 8 (adv.) and Spring Boot 3 will develop knowledge and skills that may be useful to these careers:
Java Developer
A Java developer specializes in building applications using the Java programming language. This course directly supports a Java developer by providing deep dives into advanced Java features across multiple versions, including Java 8, 11, 17, and 21. A Java developer will gain practical skills in functional programming with lambda expressions and streams, along with the knowledge of generics, concurrency, modules, and newer language constructs. This course will help by offering hands-on assignments, practical code examples, and certification quizzes that help a Java developer to develop expertise in Java development.
Software Engineer
A software engineer develops, tests, and maintains software applications. This course helps a software engineer by covering advanced Java concepts, including lambdas, streams, collections, generics, concurrency, modules, records, and pattern matching. A software engineer can leverage this knowledge to build robust, modern applications. The course's focus on Java 8, 11, 17, and 21 ensures that the software engineer is up-to-date with the latest features and best practices. The course also provides practical assignments and code examples which are useful for real-world situations, enhancing the software engineer's ability to tackle complex projects.
Software Development Engineer
A software development engineer is involved in the entire software development lifecycle, from design to deployment. This course helps a software development engineer significantly by providing in-depth knowledge of advanced Java features including lambdas, streams, collections, generics, and concurrency, which are very important to build high-quality software. The course's inclusion of Java 8, 11, 17, and 21 topics ensures the software development engineer is equipped with the most up-to-date skills and best practices. The practical assignments and certification quizzes reinforce these concepts and prepare the software development engineer for real world scenarios.
Application Developer
An application developer designs and builds software applications for various platforms. This course may be useful to an application developer by covering advanced Java concepts such as lambdas, streams, and concurrency. The course will provide an application developer with the knowledge needed to build scalable and efficient applications with the most current features of the Java language. The assignments and the code examples will give an application developer practical experience in using advanced Java features making this course well suited for an aspiring application developer.
Backend Developer
A backend developer focuses on the server-side logic and databases that power applications. This course may be useful by helping a backend developer to master advanced Java features like concurrency, modules, and file I/O. This course will help the backend developer to learn how to build robust and efficient server-side applications and also provide an introduction to RESTful Web services with Spring Boot 3. The breadth of topics, from advanced Java 8 to Java 21, equip a backend developer with the skills to handle modern development challenges. The assignments also allow a backend developer to practice and explore advanced Java concepts.
Full-Stack Developer
A full stack developer works on both the front-end and back-end of a software application. This course helps the full stack developer by providing them with comprehensive knowledge of Java, which is frequently used in back-end development. A full stack developer can use the course's coverage of Lambdas, Streams, Generics, Concurrency, and Spring Boot to develop more robust server-side application logic. The inclusion of topics from Java 8 to Java 21 ensures the full stack developer is acquainted with the latest features and best practices in Java development. The practical assignments and examples help the full stack developer to build practical experience across multiple versions.
Technical Lead
A technical lead manages and guides a team of developers, setting technical direction for projects. This course may be useful to a technical lead by helping them to stay current with the latest versions of Java. A technical lead can use the course’s materials on lambdas, concurrency, and modules to make informed decisions regarding their projects. The course's inclusion of advanced topics from Java 8 to Java 21 provides a technical lead with the latest expertise in the Java ecosystem. This knowledge enables them to lead their team more effectively and make better technical judgments.
Cloud Engineer
A cloud engineer designs, implements, and manages cloud-based systems. This course may be useful to a cloud engineer by providing them with a strong foundation in Java, a language widely used in cloud environments. A cloud engineer will find value in the course's coverage of Spring Boot 3, which enhances their ability to configure and deploy applications in a cloud native way. In addition, the concurrency and module features covered in this course help cloud engineers to understand the nature of scalable systems.
Test Engineer
A test engineer designs and executes tests to ensure software quality. This course helps a test engineer by giving them an understanding of advanced Java concepts as they might need to write automated tests in Java. A test engineer can use the course's coverage of lambda expressions, stream, concurrency, and other advanced Java concepts to write more robust and efficient test cases. Knowing the intricacies of Java 8,11,17 and 21 ensures that test engineers can align their automated tests with the latest programming paradigms.
System Architect
A system architect designs the structure and components of complex software systems. This course may be useful to a system architect by offering advanced understanding of Java's capabilities. A system architect can leverage the course to learn the details of the latest versions of Java, including Java 21. The sections on concurrency and module features will help an architect to design scalable, robust and maintainable systems. Familiarity with the latest Java features can also give better informed architectural decisions.
Solutions Architect
A solutions architect designs software solutions to meet specific business needs, focusing on integration and scalability. This course may be useful to a solutions architect by providing them with an understanding of the capabilities of Java. A solutions architect can utilize the advanced concepts of lambda expressions, streams, and concurrency as well as new Java features like modules, records, and pattern matching that are covered by the course. This gives a solutions architect the knowledge to make informed decisions about which Java features to use in the design and implementation of software solutions.
Database Developer
A database developer designs, implements, and manages databases. While this course focuses on Java programming, it helps a database developer by providing knowledge of JDBC and Java's interaction with databases. A database developer can use the course's section on JDBC to understand how Java applications interact with databases and also use the knowledge of concurrency to develop database applications that are robust and highly performant. The course helps in providing a broader understanding of the Java ecosystem and its relevance in data management.
Mobile Application Developer
A mobile application developer builds applications for mobile devices. This course may be useful to a mobile application developer by helping them learn Java for server-side development or for Android development. A mobile application developer can use the course's coverage of Java 8, 11, 17 and 21 to create efficient and reliable mobile backend systems or use the knowledge of Java to build applications for Android. This course may enhance the skills for the back end or give a greater understanding of Android development.
Embedded Systems Engineer
An embedded systems engineer designs and develops software for embedded devices. This course may be useful to an embedded systems engineer because they may use Java for certain embedded applications. An embedded systems engineer will benefit from understanding concurrency and memory management in Java which can be useful in embedded systems development. The course may serve as a secondary skill to support such applications. This gives the embedded systems engineer more complete expertise in the software aspects of embedded applications.
Research Scientist
A research scientist conducts research and develops new technologies in various fields. This course may be useful to a research scientist who needs to use Java for data analysis, simulation, or other scientific computing tasks. The course's coverage of concurrency and advanced Java features can help a research scientist utilize Java in high-performance computing and data processing applications. This knowledge may allow the research scientist to explore computational solutions within the Java ecosystem.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Java 21, Java 17, Java 11, Java 8 (adv.) and Spring Boot 3.
Provides invaluable insights into best practices for Java programming. It covers a wide range of topics relevant to the course, including generics, collections, concurrency, and more. Reading this book will help you write more robust, maintainable, and efficient Java code. It is commonly used as a reference by industry professionals.
Comprehensive guide to Java concurrency. It covers topics such as threads, locks, atomic variables, and concurrent collections. Reading this book will help you write thread-safe and performant Java code. It is commonly used as a reference by industry professionals.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser