Skip to content
Theory · Final project · lesson 3 of 4

Where to go next

The lending desk is built, and you made every part of it yourself. But a desk is only one part of a real library. Books arrive on the shelves from a warehouse, new copies are checked before they are lent, and all of it works inside one building.

Large Java programs are built in a similar way. Their code is written in the same language as in the course, and tools work around the code:

  • the warehouse and delivery: the build tools Maven and Gradle;
  • checking the copies: tests with JUnit;
  • the building: the Spring framework.

Their names come up often in Java developer job postings. This lesson explains what they are for, and their syntax can wait.

What you can already do

In this course you went from the first line to a working program:

  • javac turns code into bytecode, and the JVM runs it on any computer;
  • variables, operators, conditions, loops and methods;
  • classes, inheritance, interfaces, enums and records;
  • wrappers, exceptions and collections;
  • lambda expressions, streams and a first look at threads.

This is the core of the language. Every tool below stands on it: the same javac, the same JVM, the same classes and exceptions.

Building: Maven and Gradle

A real project has hundreds of files and plenty of other people's ready-made code it depends on, for example to work with a database. Maven and Gradle are build tools: they download that code, run javac on every file and pack the program into a single .jar file.

Tests: JUnit

JUnit is a tool for automatic checks: you write short test methods, and each one calls your code and compares the result with the expected one. JUnit runs all the tests at once and shows which check failed.

The server: Spring

Spring is the most widely used framework for server programs in Java: web services that take requests over the network and work with databases. A framework is a ready-made frame of an application: it takes the requests itself and calls your classes, and you write only what makes your service different.

Here the library picture falls short. A building is built once, while a program grows and changes for years. That is why the project is rebuilt after every change, and JUnit runs all the tests again each time.

Next step: the interview simulator

The best way to check that your knowledge holds up is an interview. IT Abyss has a Java interview simulator. It has two modes:

  • tests with answer options, as in this course;
  • an interview with an AI: you answer in your own words, and the AI grades the answer and asks follow-up questions.

The questions from this course's quizzes live in the simulator's bank too. In all, the bank holds about three hundred Java questions, including topics the course did not cover: garbage collection in the JVM, advanced concurrency, Spring and testing. The button on the course completion page opens the simulator.

Key points

  • The course gave you the core of Java: from javac and the JVM to collections, exceptions and streams.
  • Maven and Gradle download the code a project depends on, build the project and pack the program into a .jar.
  • JUnit checks code automatically with tests, and Spring gives a ready-made frame for server applications.
  • The next step is the Java interview simulator on IT Abyss: tests and an interview with an AI.