Hotline: 0909.141.661 | Email: plpsoft.vn@gmail.com

Java - Chương 1. Bài 7. Các Kiểu Dữ Liệu Và Ép Kiểu Trong Java

Phần 1: JAVA CĂN BẢN Chương 1. Khái niệm về Java Bài 7. Các Kiểu Dữ Liệu Và Ép Kiểu Trong Java

Chương 1. Bài 7. Các Kiểu Dữ Liệu Và Ép Kiểu Trong Java

 

1.8 Các kiểu dữ liệu trong java


Trong Java, các kiểu dữ liệu được chia thành hai loại:

  • Các kiểu dữ liệu nguyên thủy
  • Các kiểu dữ liệu đối tượng

1.8.1. Kiễu dữ liệu nguyên thủy

Java cung cấp các kiểu dữ liệu cơ bản như sau:

Kiểu dữ liệu

Mô tả

byte

Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bít). Phạm vi biểu diễn giá trị từ -128 đến 127. Giá trị mặc định là 0.

char

Dùng để lưu dữ liệu kiểu kí tự hoặc số nguyên không âm có kích thước 2 byte (16 bít). Phạm vi biểu diễn giá trị từ 0 đến u\ffff. Giá trị mặc định là 0.

boolean

Dùng để lưu dữ liệu chỉ có hai trạng thái đúng hoặc sai (độ lớn chỉ có 1 bít). Phạm vi biểu diễn giá trị là {“True”, “False”}. Giá trị mặc định là False.

short

Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bít). Phạm vi biểu diễn giá trị từ - 32768 đến 32767. Giá trị mặc định là 0.

int

Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bít). Phạm vi biểu diễn giá trị từ -2,147,483,648 đến 2,147,483,647. Giá trị mặc định là 0.

long

Dùng để lưu dữ liệu có kiểu số nguyên có kích thước lên đến 8 byte. Giá trị mặc định là 0L.

float

Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bít). Giá trị mặc định là 0.0F.

double

Dùng để lưu dữ liệu có kiểu số thực có kích thước lên đến 8 byte. Giá trị mặc định là 0.00D


1.8.2. Kiểu dữ liệu đối tượng

Trong java có 3 kiểu dữ liệu đối tượng:

Kiểu dữ liệu

Mô tả

Array

Một mảng của các dữ liệu cùng kiểu.

class

Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức..

interface

Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp.

1.9. Ép kiểu trong Java


Ép kiểu trong java là việc gán giá trị của một biến có kiểu dữ liệu này tới biến khác có kiểu dữ liệu khác.

Ví dụ:

 

float c = 35.8f;

int b = (int)c + 1;

Trong ví dụ trên, đầu tiên giá trị dấu phảy động c được đổi thành giá trị nguyên 35. Sau đó nó được cộng với 1 và kết quả là giá trị 36 được lưu vào b.


1.9.1 Phân loại ép kiểu trong java

Trong Java, có hai loại ép kiểu dữ liệu:

  1. Nới rộng (widening): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước nhỏ hơn sang kiểu có kích thước lớn hơn. Kiểu biến đổi này không làm mất thông tin.
  2. Thu hẹp (narrowwing): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước lớn hơn sang kiểu có kích thước nhỏ hơn. Kiểu biến đổi này có thể làm mất thông tin

1.9.2. Nới rộng (widening)

Nới rộng (widening): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước nhỏ hơn sang kiểu có kích thước lớn hơn. Kiểu biến đổi này không làm mất thông tin. Ví dụ chuyển từ int sang float. Chuyển kiểu loại này có thế được thực hiện ngầm định bởi trình biên dịch.

Ví dụ:

 

public class TestWidening {

    public static void main(String[] args) {

        int i = 100;

        long l = i;    // không yêu cầu chỉ định ép kiểu

        float f = l;   // không yêu cầu chỉ định ép kiểu

        System.out.println("Giá trị Int: " + i);

        System.out.println("Giá trị Long: " + l);

        System.out.println("Giá trị Float:  " + f);

    }

}

Kết quả:

Giá trị Int: 100

Giá trị Long: 100

Giá trị Float:  100.0


1.9.3. Thu hẹp (narrowwing)

Thu hẹp (narrowwing): Là quá trình làm tròn số từ kiểu dữ liệu có kích thước lớn hơn sang kiểu có kích thước nhỏ hơn. Kiểu biến đổi này có thể làm mất thông tin như ví dụ ở trên. Chuyển kiểu loại này không thể thực hiện ngầm định bởi trình biên dịch, người dùng phải thực hiện chuyển kiểu tường minh.

Ví dụ:

 

public class TestNarrowwing {

    public static void main(String[] args) {

        double d = 100.04;

        long l = (long) d; // yêu cầu chỉ định kiểu dữ liệu (long)

        int i = (int) l; // yêu cầu chỉ định kiểu dữ liệu (int)

 

        System.out.println("Giá trị Double: " + d);

        System.out.println("Giá trị Long: " + l);

        System.out.println("Giá trị Int:  " + i);

    }

}

Kết quả:

Giá trị Double: 100.04

Giá trị Long: 100

Giá trị Int:  100

Bài học trước:

Bài 6. Biến Trong Java

Bài học kế tiếp: 

Bài 8. Toán tử trong java

 

Tin Khác