Facebook Page Twitter Page LinkedIn Page
× Java Tutorial Java Advanced Java Resources


The Java long keyword is a primitive data types. The long data type is a 64-bit two's complement integer. Its default value is 0L and default size is 64 bits (8 byte). The range of a long value is -263 to 263-1.

Example: Create a long value

In the below example, variable x and y are created to store long values. Please note that, value with a "L" is used to represent the long value.

public class MyClass {
  public static void main(String[] args) {   
    //creating long values
    long x = 10l;
    long y = 10L;

    //printing variables
    System.out.println("x = " + x);
    System.out.println("y = " + y);    
  }
}

The output of the above code will be:

x = 10.5
y = 10.0

Example: Widening Casting (smaller to larger type)

A long value can be created by assigning a byte, a short or an int data to a long variable. The compiler implicitly typecast these data types to long as shown in the output.

public class MyClass {
  public static void main(String[] args) {       
    byte num_byte = 10;

    //Widening Casting
    short num_short = num_byte;
    int num_int = num_short;
    long num_long = num_int;

    //printing variables
    System.out.println("num_byte = " + num_byte); 
    System.out.println("num_short = " + num_short);
    System.out.println("num_int = " + num_int);
    System.out.println("num_long = " + num_long);
  }
}

The output of the above code will be:

num_byte = 10
num_short = 10
num_int = 10
num_long = 10

Example: Narrowing Casting (larger to smaller type)

For a larger data types like double and float, narrowing casting is required. The compiler explicitly typecast these data types to long as shown in the output.

public class MyClass {
  public static void main(String[] args) {    
    double num_double = 10.5d;

    //Narrowing Casting
    float num_float = (float) num_double;
    long num_long = (long) num_float;

    //printing variables
    System.out.println("num_double = " + num_double);
    System.out.println("num_float = " + num_float); 
    System.out.println("num_long = " + num_long);
  }
}

The output of the above code will be:

num_double = 10.5
num_float = 10.5
num_long = 10

❮ Java Keywords