# Getting Started with Java

## Java is a high-level, cross-platform, mature, object-oriented programming language. Java is extremely popular due to its flexibility and ability to run anywhere!

- \
\
Lesson #1\
\
Introduction\
\
This is the beginning of the Java class. In here you will get started with writing your first Java code!](/content/classes/java/introduction/index.html)
- \
\
Lesson #2\
\
Overview, Syntax, and Comments\
\
Get an overview of Java in this lesson including the syntax and how to leave single and multi-line comments.](/content/classes/java/overview-syntax-comments/index.html)
- \
\
Lesson #3\
\
Variables and Types\
\
Variables and constants hold data and information. Learn how to declare, initialize, and reassign them in Java.](/content/classes/java/variables-types/index.html)
- \
\
Lesson #4\
\
Math\
\
Learn about how to do arithmetic and work with the basic math operators and methods provided by Java.](/content/classes/java/math/index.html)
- \
\
Lesson #5\
\
Ifs, Else Ifs, Switch\
\
Logic and conditionals are a fundamental part of Java and is how your program can make decisions on what to do.](/content/classes/java/logic-conditionals/index.html)
- \
\
Lesson #6\
\
Loops\
\
Learn how to shorten and improve your code by utilizing loops like for loops, while loops, and do while loops.](/content/classes/java/loops/index.html)
- \
\
Lesson #7\
\
Methods\
\
Methods in Java allow you to reuse a code block and reduce code repetition which ensures cleaner and more modular code.](/content/classes/java/methods/index.html)
- \
\
Lesson #8\
\
Arrays\
\
Arrays are a list of data in Java. In this lesson, learn how to create, add elements to, remove elements from, and iterate over arrays.](/content/classes/java/arrays/index.html)
- \
\
Lesson #9\
\
Enums\
\
Enums in Java are a group of constants that you can define. Learn how to define them, get their value, and iterate over them.](/content/classes/java/enums/index.html)
- \
\
Lesson #10\
\
Classes and Objects\
\
Java is an object-oriented programming language and because of this, classes and objects are a fundamental feature of the language.](/content/classes/java/classes-objects/index.html)
- \
\
Lesson #11\
\
Instances and Access Modifiers\
\
Creating a new object creates a new instance of that class. Learn about what that means, including the different access modifiers.](/content/classes/java/instance-access-modifiers/index.html)
- \
\
Lesson #12\
\
Encapsulation\
\
Encapsulation is the principle of wrapping data inside an object to protect it from unwanted accesses or manipulation.](/content/classes/java/encapsulation/index.html)
- \
\
Lesson #13\
\
Inheritance\
\
Inheritance is the mechanism in which a class is able to access all of the properties and methods of a parent class.](/content/classes/java/inheritance/index.html)
- \
\
Lesson #14\
\
Polymorphism\
\
Polymorphism is the concept that objects can take many forms, particularly when it is extending from a parent class.](/content/classes/java/polymorphism/index.html)
- \
\
Lesson #15\
\
Abstract Classes\
\
Abstract classes are classes in Java that contain abstract methods and let children classes provide the implementation.](/content/classes/java/abstract-classes/index.html)
- \
\
Lesson #16\
\
Interfaces\
\
Java interfaces are templates for classes to achieve abstraction and polymorphism similar to abstract classes.](/content/classes/java/interfaces/index.html)
- \
\
Lesson #17\
\
Packages\
\
Packages are the namespace conventions that Java follows to avoid naming collisions and organize files.](/content/classes/java/packages/index.html)
- \
\
Lesson #18\
\
Collections\
\
The Collections framework in Java defines numerous different data structures in which you can store, group, and retrieve objects.](/content/classes/java/collections/index.html)
- \
\
Lesson #19\
\
Date: Work with Moments in Time\
\
Learn how to express dates and moments in time using Java's built-in date and time functions and variables.](/content/classes/java/date-time/index.html)
- \
\
Lesson #20\
\
File System and IO\
\
Learn how to work with the file system in Java including how to open, read, write, and close a file.](/content/classes/java/file-system/index.html)
- \
\
Lesson #21\
\
Regular Expressions\
\
Learn how to use regular expressions search patterns to match text and do advanced find and replace operations.](/content/classes/java/regular-expressions/index.html)
- \
\
Lesson #22\
\
Exceptions\
\
Learn how to gracefully handle and recover from critical exceptions in Java when they arise in your code.](/content/classes/java/exceptions/index.html)
- \
\
Lesson #23\
\
Conclusion and Wrap Up\
\
Congratulations on finishing this class on Java. This lesson is the last lesson of the class on Java and serves as the conclusion of the class.](/content/classes/java/conclusion/index.html)
