The Math Class

The operators + - * / only go so far. When you need square roots, powers, rounding, absolute values, or random numbers, Java's built-in Math class has a ready-made method waiting — no import required.

Learn The Math Class in our free Java course — a beginner-friendly interactive lesson with worked examples, a practice exercise and a quick reference.

Part of the free Java course at LearnCodingFast — hands-on lessons with examples you run in your browser, plus practice exercises and a quick quiz.

The Math class is a collection of static methods. "Static" means they belong to the class itself, so you call them directly on the class name and never create an instance:

💡 Analogy: Math is like a wall-mounted toolbox in a workshop. You don't buy your own copy of the toolbox — you just walk up and grab the tool you need ( Math.sqrt , Math.max ) and put it back.

Math.random() returns a double in the half-open range [0.0, 1.0) — zero is possible, one is not. To turn that into a useful integer range, memorise this formula:

For a six-sided die that's min = 1, max = 6 . The (max - min + 1) gives the count of possible values, and the + min shifts the range to start at the right place.

Since the output is random, the numbers in the example below will differ every time you run it — that's the whole point!

The real value of Math shows up when you combine methods into a formula. A few classics:

Reorder these lines to compute the hypotenuse of a 3-4-5 triangle and print it as a rounded int.

Why: a and b must exist before the sqrt uses them. h (which is 5.0) must be computed before it can be rounded, and the rounded value is printed last. The output is Hypotenuse: 5 .

8.0 . ceil always rounds up, and it returns a double , so note the .0 .

100 . The inner min(100, 250) is 100, then max(0, 100) is 100 — the clamp formula in action.

3. What is the type and possible range of (int)(Math.random() * 10) ?

An int from 0 to 9 inclusive. Math.random() never reaches 1.0, so * 10 never reaches 10, and the cast truncates to 0–9.

You've unlocked Java's math toolbox: abs , max / min , pow , sqrt , the rounding trio, the constants PI and E , and the random-number formula. No imports, no objects — just Math.something(...) .

Next up: StringBuilder & String Formatting — build and format text efficiently for clean, professional output.

Practice quiz

What does Math.ceil(7.01) print?

  • 7.0
  • 7
  • 8.0
  • 8

Answer: 8.0. ceil always rounds UP to the next whole number and returns a double, so 7.01 becomes 8.0.

What does Math.max(0, Math.min(100, 250)) evaluate to?

  • 100
  • 0
  • 250
  • 150

Answer: 100. The inner min(100, 250) is 100, then max(0, 100) is 100 — the standard clamp formula.

What is the type and result of Math.pow(2, 10)?

  • int 1024
  • long 1024
  • float 1024.0f
  • double 1024.0

Answer: double 1024.0. Math.pow takes two doubles and returns a double, so the result is 1024.0, not the int 1024.

Do you need to import the Math class to use Math.sqrt?

  • Yes, import java.lang.Math
  • No — it lives in java.lang
  • Yes, import java.util.Math
  • No — but you must call new Math()

Answer: No — it lives in java.lang. Math is in java.lang, which is imported automatically. There is nothing to import and nothing to instantiate.

What does Math.round(4.5) return?

  • 5
  • 4
  • 4.0
  • 5.0

Answer: 5. round returns the nearest whole number as a long; 4.5 rounds to 5.

Which call gives a random int from 1 to 6 inclusive?

  • (int)(Math.random() * 6)
  • (int)(Math.random() * 7)
  • (int)(Math.random() * 6) + 1
  • Math.random() * 6 + 1

Answer: (int)(Math.random() * 6) + 1. Math.random() is in [0.0, 1.0), so * 6 gives 0–5; adding 1 shifts it to the inclusive 1–6 range.

What does Math.floor(4.9) print?

  • 5.0
  • 4.0
  • 4
  • 5

Answer: 4.0. floor always rounds DOWN and returns a double, so 4.9 becomes 4.0.

Why does new Math() fail to compile?

  • Math is final
  • Math is an interface
  • Math is abstract
  • Math has no public constructor and only static methods

Answer: Math has no public constructor and only static methods. Every method on Math is static and it has no public constructor, so you never instantiate it — you call Math.something(...).

What does Math.sqrt(9 / 2) print?

  • 2.1213...
  • 2.0
  • 4.5
  • Compile error

Answer: 2.0. 9 / 2 is integer division giving 4, so Math.sqrt(4) is 2.0. Write 9.0 / 2 to get 4.5 first.

What is the value of Math.cbrt(27)?

  • 9.0
  • 3
  • 3.0
  • 27.0

Answer: 3.0. cbrt is the cube root and returns a double, so the cube root of 27 is 3.0.