---
title: Java
description: Java is a class-based, object-oriented programming language designed for platform independence. You will understand how to build secure, robust enterprise applications, manage memory via the JVM, and utilize its extensive standard library.
category: programming-tech
subcategory: programming-languages
difficulty: beginner, intermediate, advanced
url: /subject/java
---

# Java

Java is a class-based, object-oriented programming language designed for platform independence. You will understand how to build secure, robust enterprise applications, manage memory via the JVM, and utilize its extensive standard library.

## Available Resources

1 Videos • 1 Books • 3 Courses • 2 Websites

## Websites

### 1. Vogella

Lars Vogel's tutorial library covers core Java syntax, collections, generics, and the surrounding toolchain: Eclipse, Maven, Gradle, JUnit. Each guide is a self-contained walkthrough with runnable code, useful for setting up a working Java development environment.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.vogella.com/tutorials/java.html

**Tags:** java, eclipse, maven, junit, tutorials

### 2. Baeldung

Article series on Java and the Spring ecosystem, each focused on one narrow task: a Jackson annotation, a JPA query, a security config. Editorially reviewed, with runnable GitHub examples, so it works as a reference while building applications.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.baeldung.com/

**Tags:** java, spring, spring-boot, jpa, backend

## Courses

### 1. Oracle Java Tutorials

Learn Java programming with Oracle's official Java Tutorials. Master Java fundamentals and advanced concepts with this comprehensive course.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://docs.oracle.com/javase/tutorial/

**Tags:** java, java-se, official-docs, jdk, object-oriented-programming

### 2. Java Programming: Solving Problems with Software

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files. 

After completing this course you will be able to:
1. Edit, compile, and run a Java program;
2. Use conditionals and loops in a Java program;
3. Use Java API documentation in writing programs. 
4. Debug a Java program using the scientific method;
5. Write a Java method to solve a specific problem;
6. Develop a set of test cases as part of developing a program;
7. Create a class with multiple methods that work together to solve a problem; and
8. Use divide-and-conquer design techniques for a program that uses multiple methods.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.coursera.org/learn/java-programming

**Tags:** java, programming-fundamentals, algorithms, debugging, csv-data

### 3. Java Programming: Basic Skills

Codio's introductory Java course on edX for people who have never programmed, run in the browser with no setup. It covers variables, operators, conditionals, loops and arrays, so learners can write, run and debug simple Java programs.

**Difficulty:** Beginner | **Language:** English | **Duration:** Approximately 21 hours | **Price:** Free

**Link:** https://www.edx.org/learn/java/codio-java-programming-basic-skills

**Tags:** java, programming-basics, conditionals, loops, arrays

## Videos

### 1. Java Programming: Object Oriented Programming Full Course

Comprehensive Java OOP tutorial by Bro Code, highly upvoted in r/learnprogramming

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.youtube.com/watch?v=eIrMbAQSU34

**Tags:** java, oop, bro-code, full-course

## Books

### 1. Effective Java

**Author:** Joshua Bloch

Joshua Bloch's collection of items on Java API and library design: when to prefer static factories, how equals and hashCode interact, generics pitfalls, concurrency idioms. Readers gain judgment about idiomatic Java rather than syntax knowledge. Assumes working fluency.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0321356683?tag=edmonddante07-20

**Tags:** books, technology-computer-science, programming-languages

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/java