Các kiểu dữ liệu cơ bản và kiểu chuỗi (String) trong Java

Đây là bài 8/62 bài của series môn học Ngôn ngữ lập trình Java

Trong Java, tất cả các biến phải được khai báo trước khi sử dụng. Khi khai báo biến, cần chỉ rõ loại dữ liệu có thể được lưu trữ trong biến thông qua kiểu dữ liệu của biến. Trong Java, các kiểu dữ liệu được chia thành 2 loại:

    • Kiểu dữ liệu primitive (kiểu dữ liệu nguyên thủy hay kiểu dữ liệu cơ bản) được định nghĩa sẵn trong Java. Gồm 8 kiểu dữ liệu là boolean, byte, short, int, long, double, float, char.
    • Kiểu dữ liệu non-primitive thường là các lớp (class) do lập trình viên tự định nghĩa (ngoại trừ String, Arrays,..).

Bài này sẽ giới thiệu 8 kiểu dữ liệu primitive và kiểu dữ liệu String trong Java.

1. Kiểu dữ liệu boolean

Đây là kiểu dữ liệu chỉ nhận một trong 2 giá trị true hoặc false.

Giá trị mặc định là false.

class Main {
    public static void main(String[] args) {
        boolean flag = true;
        System.out.println(flag);//true
    }
}

2. Kiểu dữ liệu byte

Kiểu dữ liệu byte có giá trị từ -128 đến 127, được biểu diễn bởi 8 bit.

Giá trị mặc định là 0.

Nếu chắc chắn rằng giá trị của một biến sẽ nằm trong khoảng -128 đến 127 thì nên sử dụng kiểu byte thay kiểu int để tiết kiệm bộ nhớ.

class Main {
    public static void main(String[] args) {
        byte range;
        range = 124;
        System.out.println(range);//124
    }
}

3. Kiểu dữ liệu short

Kiểu dữ liệu short có giá trị từ -32768 đến 32767, được biểu diễn bởi 16 bit.

Giá trị mặc định là 0.

Nếu chắc chắn rằng giá trị của một biến sẽ nằm trong khoảng -32768 đến 32767 thì nên sử dụng kiểu short thay kiểu int hoặc long để tiết kiệm bộ nhớ.

class Main {
    public static void main(String[] args) {
        short temperature;
        temperature = -200;
        System.out.println(temperature);//-200
    }
}

4. Kiểu dữ liệu int

Kiểu dữ liệu int có giá trị từ -231 to 231-1, được biểu diễn bởi 32 bit.

Giá trị mặc định là 0.

class Main {
    public static void main(String[] args) {
        int range = -4250000;
        System.out.println(range);//-4250000
    }
}

5. Kiểu dữ liệu long

Kiểu dữ liệu long có giá trị từ -263 to 263-1, được biểu diễn bởi 64 bit.

Giá trị mặc định là 0.

class Main {
    public static void main(String[] args) {
        long range = -42332200000L;
        System.out.println(range);//-42332200000
    }
}

Lưu ý: Sử dụng L ở cuối -42332200000 để thể hiện đây là kiểu long.

6. Kiểu dữ liệu double

Kiểu dữ liệu double lưu trữ số thực với dấu chấm động (floating-point), được biểu diễn bởi 64 bit.

Giá trị mặc định là 0.0 (0.0d).

class Main {
    public static void main(String[] args) {
        double number = -42.3d;
        System.out.println(number);//-42.3
    }
}

7. Kiểu dữ liệu float

Kiểu dữ liệu float lưu trữ số thực với dấu chấm động (floating-point), được biểu diễn bởi  32 bit.

Giá trị mặc định là 0.0 (0.0f).

class Main {
    public static void main(String[] args) {
        float number = -42.3f;
        System.out.println(number);//-42.3
    }
}

Lưu ý: Nếu biểu diễn số thực có kiểu dữ liệu là float thì phải sử dụng f phía sau số thực. Còn số thực có kiểu dữ liệu là double thì sử dụng d phía sau số thực hoặc không cần sử dụng d. Ví dụ, -42.3f là số thực kiểu float, -42.3 hoặc -42.3d là số thực kiểu double.

8. Kiểu dữ liệu char

Kiểu dữ liệu char dùng để lưu trữ các ký tự Unicode, được biểu diễn bởi 16 bit.

Giá trị mặc định là ‘\u0000’.

Giá trị ký tự nhỏ nhất của kiểu char là ‘\u0000’ (0) và giá trị ký tự lớn nhất là ‘\uffff’.

class Main {
    public static void main(String[] args) {
        char letter = '\u0051';
        System.out.println(letter);//ký tự Q
        
        char letter1 = '9';
        System.out.println(letter1);//9
        
        char letter2 = 65;
        System.out.println(letter2);//A
    }
}

Nếu một số nguyên được gán cho biến char (ví dụ char letter2 = 65;), Java sẽ lấy ký tự tương ứng số nguyên đó trong bảng mã ASCII. Ví dụ, trong bảng mã ASCII thì 65 tương ứng ký tự ‘A’.

9. Kiểu dữ liệu String

Java hỗ trợ kiểu dữ liệu String, lưu trữ chuỗi ký tự thông qua lớp java.lang.String. Đây không phải là kiểu dữ liệu cơ bản mà nó là một lớp được định nghĩa sẵn trong Java.

class Main {
    public static void main(String[] args) {
        String myString = "Java Programming";
        System.out.println(myString);//Java Programming
    }
}

Trong ví dụ trên, myString là một đối tượng của lớp String.

Ghép chuỗi với String

String message = "Welcome " + "to " + "Java!";//Welcome to Java!
String s = "Chuong " + 2;//Chuong 2
String s1 = "Hello" + " World!";//Hello World!
String s2 = s + " - " + s1;//Chuong 2 - Hello World!

Chuyển đổi chuỗi ký tự thành số

int intValue = Integer.parseInt("123");//123
double doubleValue = Double.parseDouble("123.45");//123.45

10. Một số lỗi về kiểu dữ liệu phổ biến

Tràn số nguyên

int value = 2147483647 + 1; // giá trị thực sự của value là 2147483648

Làm tròn số

System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//kết quả là 0.5000000000000001, không phải 0.5
System.out.println(1.0 - 0.9);//kết quả là 0.09999999999999998, không phải 0.1

Chia số nguyên ngoài ý muốn

int number1 = 1;
int number2 = 2;
double average2 = (number1 + number2)/2;
System.out.println(average2);//1.0
double average20 = (number1 + number2)/2.0;
System.out.println(average20);//1.5

Câu lệnh double average2 = (number1 + number2)/2; sẽ cho giá trị 1.0 bởi (number1 + number2) sẽ ra số nguyên, số nguyên này lại chia cho số nguyên 2 nên kết quả sẽ là số nguyên 1. Số nguyên 1 được ép kiểu qua double nên giá trị là 1.0.

Câu lệnh double average20 = (number1 + number2)/2.0; sẽ cho giá trị 1.5 bởi (number1 + number2) sẽ ra số nguyên, số nguyên này chia cho số thực 2.0 nên kết quả sẽ tự ép kiểu ra là số thực 1.5.

Các bạn có thể đọc thêm kiến thức về ép kiểu trong Java ở bài Java Type Casting.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Khái niệm biến (variable) và cách khai báo biến trong JavaNhập và xuất cơ bản (basic input and output) trong Java >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.