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.7 (643 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
3,095 students enrolled
Take This Course
  • Lectures 165
  • Length 12 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2016 English

Course Description

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!

What are the requirements?

  • 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

What am I going to get from this course?

  • 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)

Who is the target audience?

  • 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)

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Welcome!

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


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


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

Section 2: Getting Started with Java

Overview of "Getting Started with Java."


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


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

3 questions

Test your knowledge of concepts on the Java Platform.


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


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


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.

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 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.


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.

Section 3: Introduction to Objects
Section Overview

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


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

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.


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

Q & A: "Member"

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


This lecture formally defines the purpose of a Class.

Working with the Car Type
4 questions

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


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

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.

4 questions

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


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

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.


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

Section 4: Static, Scope, and Garbage Collection
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.


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 Reference Variables and null
2 questions

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


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.

1 question

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

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.


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.


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


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


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


In other programming languages, memory must be managed by the developer.  Java, helps us out here with a feature called "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).


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

Section 5: Packages
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."

3 questions

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


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.

Section 6: Java Conventions and Primitives
Section Overview

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


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!

2 questions

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


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


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


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.

3 questions

Test your knowledge on primitives and the rules of casting!


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.


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

Section 7: Java Syntax
Section Overview

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

More on If/Else If/Else Statements

A switch is another syntax available when defining conditionals.

More on Switch

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


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

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.


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.


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

Section 8: Strings
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.


Learn the most common methods and operations available to Strings.


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.

Concatenation Operator
4 questions

Test your knowledge on Strings!


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.


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


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

Section 9: Encapsulation
Section Overview

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


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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Intertech Training, Teaching & Training on Software Development Since 1991

Intertech's blend of doing, teaching, and mentoring has empowered individuals and technology teams in startups, small businesses, Fortune 500 corporations and government agencies since 1991. Our training team guides 1000s of software developers yearly through courses in Java, .NET, Web Development, Agile, and Mobile technologies. We offer students a full range of learning options by delivering software development training in classrooms, live online, on-site, and on-demand.

Instructor Biography

Ready to start learning?
Take This Course