long

About

  • Definition: The long data type is a primitive data type in Java used to represent a 64-bit signed integer. It is typically used when a wider range of integer values is needed, beyond the limits of the int type.

  • Size: Occupies 8 bytes (64 bits) in memory.

  • Value Range: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (-2^63 to 2^63 - 1).

  • Default Value: The default value of long is 0L.

  • Wrapper Class: The wrapper class for long is Long, located in java.lang.

Characteristics of long

  1. Signed Integer Representation:

    • The long type is signed, allowing both positive and negative values.

  2. Memory Usage:

    • It consumes 8 bytes (64 bits) of memory, which provides a much larger range than int.

  3. Default Choice for Large Numbers:

    • long is chosen when working with numbers that exceed the limits of the int type, particularly in financial calculations, timestamps, and large data processing.

  4. Promotion in Expressions: In expressions involving long and other numeric types, Java promotes the long to a larger type (double) when necessary, but long is not promoted to int to avoid loss of precision. Example:

    long a = 10L;
    double result = a / 2.0; // Promoted to double
  5. Performance: Although long requires more memory (8 bytes compared to int's 4 bytes), it is still quite efficient in most modern systems and is optimized for use in operations that require large numbers.

  6. Interoperability: long is used in many systems for time-based calculations (e.g., Unix timestamps), database IDs, and large counters that go beyond the capacity of int.

Memory

  • Memory Usage: Each long occupies 8 bytes of memory (64 bits). This allows for a significantly larger range of values compared to int.

Operations with long

Arithmetic and Logical Operations

Operation

Example

Description

Arithmetic Operations

long sum = a + b;

Addition, subtraction, multiplication, division.

Comparison Operations

a == b, a > b, etc.

Compares two long values.

Bitwise Operations

a & b, `a

b`, etc.

Conversion Methods

Conversion

Method

Example

long to String

String.valueOf(long)

String.valueOf(123456L)"123456"

String to long

Long.parseLong(String)

Long.parseLong("123456")123456

long to int

Explicit cast (int)

(int) 123456L123456

int to long

Implicit conversion

long largeValue = 123456;

Wrapper Class Example (Long)

Method

Description

Long.valueOf(long l)

Returns a Long object for the given long value.

Long.parseLong(String s)

Parses the string argument as a long.

Long.toString(long l)

Converts long to its String representation.

Long.compare(long x, y)

Compares two long values.

Long.MIN_VALUE

Minimum value of long (-9,223,372,036,854,775,808).

Long.MAX_VALUE

Maximum value of long (9,223,372,036,854,775,807).

Common Mistakes

  1. Integer Overflow: If an operation exceeds the range of long, it can cause overflow:

  2. Implicit Type Conversion: When performing operations involving long and other types, Java will promote long to a double if mixed with floating-point numbers:

Examples

Basic Example

Using long in Arrays

Converting long to String

Using long in Streams

Bitwise Operations with long

Using long with Collections (Boxed Long)

Wrapper Class Example

Last updated