Complete Java SE 8 Developer Bootcamp - OCA Prep Included
4.5 (5,501 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
19,936 students enrolled

Complete Java SE 8 Developer Bootcamp - OCA Prep Included

Master the Foundations of Java and the Topics of the Oracle Certified Associate, Java SE 8 Programmer Exam (1Z0-808)
4.5 (5,493 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
19,933 students enrolled
Last updated 12/2016
English [Auto], Spanish [Auto]
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 11.5 hours on-demand video
  • 22 articles
  • 18 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Read and write basic command line programs in Java
  • Know how to use an Integrated Development Environment (Eclipse) to develop and debug programs
  • Generate HTML based documentation (Javadoc) for code
  • Gain a solid understanding of the topics covered in the exam to become an Oracle Certified Associate, Java SE 8 Programmer (Java SE 8 Programmer I 1Z0-808)
Course content
Expand all 165 lectures 11:49:28
+ Welcome!
3 lectures 12:49

Meet the instructor, Jason Shapiro, and learn what topics this course covers.

Preview 01:43

Walkthrough for the installation of the JDK (necessary for the lab assignments).

Installing the Java SE Development Kit 8 (JDK)

Walkthrough for the installation of Eclipse (necessary for the lab assignments).

Installing Eclipse
+ Getting Started with Java
9 lectures 47:06

Overview of "Getting Started with Java."

Section Overview

The feature goals that the creators of Java had in mind when they were designing the language.  Learn about "platform independence" and other features.

The Features of the Java Programming Language

Discover the "Java Runtime Environment (JRE)" and how it is used to execute Java programs.

The Java Platform

Test your knowledge of concepts on the Java Platform.

The Java Platform
3 questions

The Java platform comes in many different configurations.  This lecture examines the different editions and versions that are available to us.

Editions and Versions

The JDK is the complete Java platform - it includes all of the tools that are needed to write and run Java programs.

The Java Development Kit (JDK)

A "50,000 feet view" of a small Java program.  Learn about classes, methods, parameters/arguments, return types, and modifiers.  We also cover the "front door" of a Java application: the "main" method.

Your First Java Program - Part 1 (Code)
Java Class and the "main" Method
6 questions

Now that the program has been written, how do we run it?  This lecture covers the compilation and execution process of a Java program.

Your First Java Program - Part 2 (Compilation and Execution)

Your first coding exercise!  Instructions on how all of the labs are handled in the course, along with information on how to use TextEdit (Mac) and Notepad (Windows) for writing a Java program.  Average completion time: 30 minutes.

Hello World Lab & Lab Files

A Javadoc is an HTML site that contains documentation for a Java API.  This lecture shows you where you can find the Java SE 8 javadoc, and how to use it.

Java API Documentation (Javadocs)
+ Introduction to Objects
17 lectures 01:19:30
Section Overview

Learn what an "object oriented program" is, and the benefits they deliver.

Object Oriented Programming (OOP)

Discussion on the different characteristics between Java primitives (such as an int or boolean) and objects.

Objects vs. Primitives
Objects vs. Primitives Addendum

One of the main keys to mastering Java is to understand how objects and method variables are represented in memory.  This lecture defines two areas of memory: the stack and the heap.

Stack & Heap

Objects may contain state and/or behavior.  This lectures defines how to access and set these features of an object.

Using Objects
Q & A: "Member"

Introduces the "constructor" as a means to initialize the state of an object.

Initializing Data

This lecture formally defines the purpose of a Class.

Creating Object Types - Part 1
Working with the Car Type
4 questions

A walkthrough of creating a "Car" class with state and behavior.

Creating Object Types - Part 2

Now that the "car" class has been created, we'll look at how we can use it.  In addition, the "return" feature is demonstrated.

Preview 06:06
A note on "void"

In a previous lecture, using a constructor to initialize an object was demonstrated.  Now you'll learn how to create your own constructors.

Building Constructors

Test your knowledge on defining/invoking constructors and default values.

Constructors and Default Values
4 questions

If you don't create a custom constructor, the compiler provides one for you.  Learn about the benefits and possible consequences of this feature.

Default Constructor
Q & A: Default vs. "No-Arg" Constructor

Constructors aren't the only way to initialize an object.  This lecture introduces another construct for this purpose: the initialization block.

Initialization Blocks

Instructions for the Objects lab.  Average completion time: 30 minutes.

Introduction to Objects Lab
+ Static, Scope, and Garbage Collection
14 lectures 01:10:31
Section Overview

Variables can be assigned to a class (rather than an object).  This lecture introduces the syntax of these variables and how they are used.

Static Variables

Just like variables, methods may also be assigned to a class (rather than an object).  The syntax and restrictions that are placed upon these methods are demonstrated.

Static Methods
Static Reference Variables and null

Test yourself to see how much you've learned about static variables and methods!

Using Static Variables and Methods
2 questions

An instance initialization block is executed every time a new instance is created.  A static initialization block is only executed once: when the class is loaded.  Learn the syntax and restrictions of this feature.

Static Initialization Block

Let's see if you've mastered the order of initialization blocks and variables, upon object instantiation!

What's the Value?
1 question
Quiz Explanation & Note About the Next Lecture

The keyword "this" refers to the specific instance of a class that is in focus.  Here we show how the keyword can be applied to class.

Preview 08:07

Now that we know how "this" is applied, let's look at one of the main use cases of why it exists: disambiguation.  In addition we revisit and expand upon the topic of the stack and heap.

"this" - Part 2

The keyword "this" can also be used to chain constructors together.  Learn how to use this feature and the reasons why it exists.

"this" - Part 3

Scope defines the lifecycle and accessibility of state.  Learn how to recognize the scope of a variable in a class.

Scope - Part 1

More demonstrations on how to recognize the scope of a variable.

Scope - Part 2

In other programming languages, memory must be managed by the developer.  Java, helps us out here with a feature called "Garbage Collection."

Garbage Collection

Although Java helps us out with memory management, we can still, unintentionally cause issues.  This lecture demonstrates a situation that could cause something similar to a memory leak (memory that is occupied but unused).

Java Memory Leaks

Instructions for the Static lab.  Average completion time is 45 minutes.

Static Lab
+ Packages
6 lectures 28:46
Section Overview

Learn how to organize your code and prevent name collisions (two or more libraries that have a class with the same name), with "packages."


Do you know all of the rules of packages and imports?  Let's find out!

Packages and Imports
3 questions

A classpath defines where classes can be found for compilation and execution.  Learn how to set these locations in this lecture.

More on Classpath

Most applications and libraries are distributed in compressed files called JARs.  Learn how to create these files.


Instructions for the Packages lab.  Average completion time is 20 minutes.

Packages Lab
+ Java Conventions and Primitives
9 lectures 44:09
Section Overview

Learn the conventions that most Java developers use when writing applications.

Coding Standards

Comments are blocks of text in code that are intended for other developers.  Anything that uses the comment syntax is excluded from normal code execution.


In a previous lecture we talked about how to read Javadocs - in this lecture you'll learn how to write your own!


Have you memorized all of the rules about identifiers and comments?  Let's find out!

Identifiers and Comments
2 questions

We've briefly mentioned primitives in previous lectures... now we'll dive into their syntax and usage.

Primitive Data Types

When a value is assigned to a primitive variable, the specific syntax used will determine their type.  Learn these rules in this lecture.

Primitive Literals

Sometimes we need to assign one primitive value type to a different variable type (such as when we pass an existing value as an argument to a method).  Learn those rules, including the concept of "casting" in this lecture.

Primitive Conversion

Test your knowledge on primitives and the rules of casting!

3 questions

What happens when we need to use longer or more precise number than those supported by primitives?  Luckily we have BigInteger and BigDecimal two classes that support big numbers.

Big Numbers

Instructions for the primitives lab.  Average completion time is 30 minutes.

Primitives Lab
+ Java Syntax
12 lectures 59:29
Section Overview

Conditionals allow us to write blocks of code that are executed if a certain state is true or false

Condtionals - If / Else If / Else
More on If/Else If/Else Statements

A switch is another syntax available when defining conditionals.

Conditionals - Switch
More on Switch

Learn the different operators available to Java, and just as important (especially for the exam) - the order of precedence.

Operators: Part 1

Concluding the post/pre-increment operator and a discussion on the ternary operator.

Operators: Part 2
More Operator Examples

Conditionals are one type of control structure.  Another type allows us to continuously execute a block of a code while a condition is true.


Loops allow us to manage their flow within their own bodies.  This lecture defines the keywords that allow us to manipulate that flow.

Break, Continue, and Labels

An Enum (short for enumeration) allows us to create strongly typed (a structure that is verified by the compiler) label.  Learn the syntax of an enum in this lecture.

Enumerations (enum)

Instructions for the Syntax lab.  Average completion time is 1 hour.

Java Syntax Lab
+ Strings
8 lectures 32:50
Section Overview

A String is an object provided by the Java SE API, that exhibits some unique characteristics.  This lecture details the structure of this object.

String Objects

Learn the most common methods and operations available to Strings.

String Operations and Operators

Once a String has been created it can never be changed.  This is known as "immutability."  Here you'll learn why Strings are immutable and how we handle this restriction in our programs.

Immutable Strings
Concatenation Operator

Test your knowledge on Strings!

Working with Strings
4 questions

When a variable is passed as an argument into a method, what is really being passed?  This lecture details how primitive arguments are handled in Java.

Pass By Value: Primitives

Continuing the examination of passing arguments, with objects, including Strings.

Passing By Value: Objects

Instructions for the Passing by Value lab.  Average completion time is 30 minutes.

Passing By Value Lab
+ Encapsulation
6 lectures 25:25
Section Overview

Encapsulation is one of the pillars of Object Oriented programming, and helps us design flexible and robust programs.

Encapsulation and Data Hiding

Getter and setters are a strategy and convention for applying encapsulation.

Getters and Setters: Part 1

Now that encapsulation has been applied, the benefits are demonstrated.

Getters and Setters: Part 2

Learn how to apply restricted access to state and behavior to provide encapsulation.

Access Modifiers

Test your knowledge on Encapsulation!

3 questions

Instructions for the Encapsulation lab.  Average completion time is 1 hour.

Encapsulation Lab
+ Inheritance
13 lectures 50:26
Section Overview

The next pillar of object oriented programming is "inheritance."  This is a feature that lets us build new objects from others they are related to.

Inheritance: Part 1

More demonstrations of how inheritance is applied and the rules that accompany this feature.

Inheritance: Part 2

In a previous lecture, the concept of chaining constructors with the keyword "this" was demonstrated.  In this lecture, the focus is on chaining constructors between super and subtypes.

Chaining Constructors
More On "Protected"
Super and the First Statement Rule

All methods must have unique signatures.  However, as long as the parameter list is unique, multiple methods may have the same name.  This is called "overloading" a method.

Overloading Methods

To change the behavior that is defined in a super class, we "override" methods.  This syntax and its restrictions are detailed in this lecture.

Overriding Methods

When overriding a method, Java allows the return type to be a subtype of the type declared in the overridden method.  This feature is known as a "covariant return."

Covariant Returns

The keyword "final" may be applied to variables, methods, and classes.  This feature prevents further modification of these constructs, once defined.

The Three Faces of Final
Revisiting the Switch Statement
Know This For The Exam: Class/Object Invocation Order

Instructions for the Inheritance lab.  Average completion time is 1 hour.

Inheritance Lab
  • You should have basic computer skills (comfortable working with a command prompt or terminal, installing software, setting environment variables, etc.)
  • If you don't have any previous programming experience, you may find it helpful to read a brief introduction on the basic concepts (variables, functions, and control structures), such as the one found at

Java is one of the most popular programming languages used in professional application development. As such, there is an extensive job market available to those who master its syntax. However, mastering a language as complex and vast as Java requires a developer to start with a solid programming foundation.  This class provides that foundation.  Those who are looking to start a career in software development, or developers who are looking to increase their marketability by learning the nuts and bolts of Java, will benefit from taking this course. To start the student on the “right track,” the lectures and labs go beyond basic syntax by including best practices and object oriented programming idioms.  In addition, the topics covered help prepare students for the Oracle Certified Associate, Java Programmer SE 8 exam (a certification which demonstrates to potential employers a fundamental level of proficiency with the language).  However, do note that this course is just as appropriate for someone who is not interested in taking the exam; if you want to learn Java, this is the course for you!

Who this course is for:
  • Developers who are looking to increase their marketability by learning the nuts and bolts of Java
  • Those who are looking to start a career in software development
  • Anyone looking to prepare for the exam to become an Oracle Certified Associate, Java Programmer SE 8 (Java SE 8 Programmer I 1Z0-808)