Java Types and Type Conversion (Casting)

By Xah Lee. Date: . Last updated: .

In Java, there are primitive types: {short, int, double}. But there are also corresponding number classes, that wraps a class structure around these.

Technically, every variable and expression in Java is of some type.

Java data types are of two kinds: primitive and reference.

You can convert one data type to another, by a operation called “casting”. Converting from one type to another is necessary, because sometimes a function f accept type A, and your expression e has type B and you want to do f(e). So, you need to convert your e to type A.

The general syntax to do casting is this:

(type) expression

For example, if n is a int and you want to cast it to double, do (double) n.

In the following example, java.lang.Math.pow() returns a double. It can be casted to int by including (int) in front. (if this is removed, the code won't compile.)

import java.lang.Math;

class T2 {
    public int square (int n) {
        return (int) java.lang.Math.pow(n,2);

class T1 {
    public static void main(String[] arg) {
        T2 x1 = new T2();
        double m =x1.square(3);