Long class trong java với ví dụ cụ thể

Long class là một wrapper class của kiểu dữ liệu nguyên thủy long trong java. Nó chứa nhiều method hữu ích giúp chúng ta thao tác nhanh với kiểu dữ liệu long như chuyển long sang String và ngược lại, Sử dụng như kiểu long trong ArrayList hay LinkedList vì chúng chỉ làm việc với các object.

Constructor

1, Long(long b): Khởi tạo một object Long từ giá trị long được cung cấp

// Syntax
public Long(long b);

// Ví dụ
Long l = new Long(10); // 10

2, Long(String s): Khởi tạo một object Long từ chuỗi số trong hệ thập phân, nếu chuỗi không hợp lệ sẽ gây ra lỗi NumberFormatException.

// Ví dụ
Long l = new Long("123");

Long l = new Long("12a") => NumberFormatException

Lưu ý nếu String không phải là một số nguyên thì chúng ta sẽ bị lỗi NumberFormatException.

Giá trị long lớn nhất – bé nhất

Long class còn cung cấp cho chúng ta 2 hằng số mà được sử dụng nhiều khi thao tác với kiểu dữ liệu long là giá trị lớn nhất và bé nhất.

Giá trị lớn nhất: Long.MAX_VALUE (9223372036854775807).

Giá trị bé nhất: Long.MIN_VALUE (-9223372036854775808)

Methods trong Long class

Long class thừa kế từ Number class nên ngoài các method intValue(), longValue(), doubleValue() etc thì Long class còn cung cấp cho chúng ta rất nhiều method. Sau đây mình sẽ liệt kê một số method mà mình thường sử dụng trong quá trình code java:

1, toString(): Trả về String số tương ứng với giá trị long.

Syntax

public String toString()

Example

Long number = new Long (10);
System.out.println(number.toString()); // 10

2, toHexString(): Trả về String tương ứng với giá trị int ở hệ hexadecimal.

Syntax

public static String toHexString(long i)

Example

System.out.println(Long.toHexString(100)); // 64

3, toOctalString(): Trả về chuỗi số tương ứng ở hệ octal

Syntax

public static String toOctalString(long i);

Example

System.out.println(Long.toOctalString(100)); // 144

4, toBinaryString(): Trả về chuỗi số tương ứng ở hệ nhị phân.

Syntax

public static String toBinaryString(long i)

Example

System.out.println(Long.toBinaryString(100)); // 1100100

5, valueOf(): Khởi tạo một object Long từ giá trị long cung cấp. Nếu giá trị cung cấp không hợp lệ thì sẽ gây ra lỗi NumberFormatException.

Example

public static Long valueOf(long i)
 
// or 
 
public static Long valueOf(String s) throws NumberFormatException

// or

public static Long valueOf(String s, int radix) throws NumberFormatException

Example

System.out.println(Long.valueOf("100")); // 100

System.out.println(Long.valueOf(100)); // 100

System.out.println(Long.valueOf("01000000", 2)); // 64

System.out.println(Long.valueOf("aaa")); // NumberFormatException

6, parseLong(): Trả về long value từ một chuỗi số được cung cấp. Nếu giá trị được cung cấp không hợp lệ gây ra lỗi NumberFormatException.

Syntax

public static int parseLong(String s)

// or

public static int parseLong(String s, int radix)

Example

System.out.println(Long.parseLong("100")); // 100

System.out.println(Long.parseLong("aaa")); // NumberFormatException

System.out.println(Long.parseLong("11110111", 2)); // 247

7, equals(): So sánh bằng giữa 2 object Long.

Syntax

public boolean equals(Object obj)

Example

Long a = Long.valueOf(100);

Long b = Long.valueOf(90);

Long c = Long.valueOf(100);

System.out.println(a.equals(b)); // false

System.out.println(a.equals(c)); // true

8, compareTo(): So sánh 2 object Long. Trả về -1 nếu nhỏ hơn, 1 lớn hơn, 0 bằng.

Syntax

public int compareTo(Integer anotherInteger)

Example

Long a = Long.valueOf(100);

Long b = Long.valueOf(90);

Long c = Long.valueOf(100);

System.out.println(a.compareTo(b)); // 1

System.out.println(b.compareTo(a)); // -1

System.out.println(a.compareTo(c)); // 0

9, max(): Lấy số lớn nhất trong 2 số, nếu 2 số trùng nhau thì trả về một trong hai.

Syntax

public static long max(long a, long b)

Example

System.out.println(Long.max(100, 90)); // 100

System.out.println(Long.max(100, 100)); // 100

10, min(): Lấy số nhỏ nhất trong hai số, nếu 2 số bằng nhau lấy một trong hai.

Syntax

public static long min(long a, long b)

Example

System.out.println(Long.min(100, 90)); // 90

System.out.println(Long.min(100, 100)); // 100

11, sum(): Trả về tổng của 2 số long.

Syntax

public static long sum(long a, long b)

Example

System.out.println(Long.sum(100, 90)); // 190

Abstract method

Ngoài các method trên thì Long class cũng implement các method của Number abstract class. Các method này sẽ giúp chúng ta chuyển giá trị kiểu long sang các kiểu dữ liệu khác như double, float, long để thao tác:

  1. public byte byteValue(): Trả về byte tương ứng của Integer object.
  2. public short shortValue(): Trả về short value tương ứng của Integer object.
  3. public int intValue(): Trả về int value tương ứng của Integer object.
  4. public long longValue(): Trả về long value tương ứng của Integer object.
  5. public double doubleValue(): Trả về double value tương ứng của Integer object.
  6. public float shortValue(): Trả về float value tương ứng của Integer object.

Ví dụ

public class Main {

    public static void main(String[] args) {

        Long l = Long.valueOf(1000);
        System.out.println("Byte value: " + l.byteValue());
        System.out.println("Short value: " + l.shortValue());
        System.out.println("Int value: " + l.intValue());
        System.out.println("Long value: " + l.longValue());
        System.out.println("Double value " + l.doubleValue());
        System.out.println("Float value: " + l.floatValue());

        double a = 5.5d;
        double d = l.doubleValue()/a;
        System.out.println(d);

        float b = 5.5f;
        float f = l.floatValue()/b;
        System.out.println(f);
    }
}

Output

Byte value: -24
Short value: 1000
Int value: 1000
Long value: 1000
Double value 1000.0
Float value: 1000.0
181.8181818181818
181.81818

Note

Long chỉ là một kiểu số nguyên có khoảng giá trị lớn hơn Integer. Nên nếu các bạn có nhu cầu sử dụng khoảng giá trị lớn thì mới nên dùng Long, không thì cứ Integer là được.

Nhiều bạn cứ nghĩ rằng thôi kệ cứ quất kiểu lớn nhất cho thoải moái khỏi lăng tăng tràn số các kiểu. Điều đó hoàn toàn đúng thể nhưng về mặt bộ nhớ thì nó là một điểm trừ rất lớn. Một biến kiểu byte có kích thước 8bit, short là 16bit, int là 32bit và long là 64, như vậy nếu dùng long cho tất cả mọi trường hợp thì bạn sẽ hao tốn rất nhiều bộ nhớ mà không cần dùng tới.

Ví dụ mình chỉ cần khoảng giá trị 0 – 100 để đếm thôi chẳng hạn thì mình sẽ dùng byte vì giá trị lớn nhất của nó là 127 vừa đủ sài mà lại chỉ tốn có 8bit thay vì 64bit nếu dùng long.

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x