Java: Kiểu dữ liệu

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Ta biết rằng mục đích của việc viết các chương trình máy tính là để giải quyết các bài toán trong thực tế. Mà các bài toán trong thực tế thì có rất nhiều các kiểu thông tin khác nhau. Vậy làm thế nào để biểu diễn được thông tin của các bài toán trong thực tế? Rõ ràng là bất cứ một ngôn ngữ lập trình nào cũng phải xây dựng nên các kiểu dữ liệu tương ứng để biểu diễn các thông tin đó. Trong Java có các kiểu dữ liệu cơ sở sau:

Kiểu dữ liệu nguyên thủy (Primitive type)

1. Kiểu dữ liệu nguyên

Kiểu dữ liệu nguyên là kiểu dữ liệu chỉ dùng để lưa chữ các số nguyên. Ta không được phép sử dụng nó để lưa các thông tin khác. Trong Java có 4 kiễu dữ liệu nguyên:

- byte: kiểu này được cấp phát vùng nhớ 8 bit, dùng để lưu trữ các số nguyên nhỏ từ -128 đến 127. Nó hữu dụng khi làm việc với luồng dữ liệu từ một mạng hoặc một file. Kiểu dữ liệu này cũng rất hữu dụng khi làm việc với dữ liệu dạng nhị phân dạng thô mà có thể không tương thích với các kiểu dữ liệu khác của Java.

- short: Kiểu dữ liệu này ít được sử dụng nhất. Nó được cấp phát vùng nhớ 16 bit và chủ yếu áp dụng cho các máy tính 16 bit.

- int: Ngược vói kiểu short, kiểu int lại là kiểu dữ liệu được sử dụng phổ biến nhất bởi tính linh hoạt và hiệu quả của nó. Nó được cấp phát một vùng nhớ 32 bit, vì thế miền giá trị của nó là rất lớn. Kiểu int có thể được dùng để lưu trữ tổng số tiền lương được trả cho tất cả các nhân viên của một công ty.

- long: Kiểu này được sử dụng đến trong trường hợp dữ liệu là các số nguyên rất lớn mà kiểu int không thể lưu trữ được, vì nó được cấp phát một vùng nhớ tới 64 bit, ví dụ như dân số của thế giới, GDP của một quốc gia (Việt Nam chẳng hạn).

Ở đây, nếu bạn quan tâm một chút, bạn sẽ hỏi là vì sao Java tạo ra nhiều kiểu dữ liệu nguyên đến thế? Vì sao Java không sử dụng chỉ một kiểu như kiểu long chẳng hạn cho dễ học?

Câu trả lời là nằm ở chỗ thông tin về các bài toán trong thực tế rất đa dạng. Có những thông tin là những số nguyên nhỏ (điểm môn hoc, ngày tháng, ...), lại có những thông tin là những số rất lớn (tiền chẳng hạn). Vì vậy việc Java tạo ra nhiều kiểu dữ liệu như vậy là để phù hợp với sự đa dạng của các thông tin trong các bài toán thực tế.

2. Kiểu dữ liệu thực

Đây là kiểu dữ liệu được dùng để lưu trữ các số thực. Trong Java có 2 kiểu dữ liệu thực:

Kiểu

Kích thước

Giải giá trị

float

32 bits

Từ -3.40292347E+38 đến 3.40292347E+38

double

64 bits

Từ -1.79799312486231570 E+308 đến 

1.79799312486231570 E+308

3. Kiểu dữ liệu char

char là kiểu dữ liệu dùng để lưu trữ các ký tự, mỗi biến kiểu char sẽ có giá trị là một ký tự Unicode có kích thước là 16 bit từ ‘\u0000’ đến ‘\uFFFF’.

4. Kiểu dữ liệu boolean

boolean là kiểu dữ liệu chỉ lưu 2 giá trị là true false. Mỗi biến kiểu boolean có kích thức là một bit. Vì vậy ta không thể chuyển kiểu dữ liệu boolean sang kiểu int và ngược lại như ở trong C.

5. Kiểu String

Cùng với những kiểu dữ liệu nguyên thủy ở trên, Java cũng hỗ trợ dữ liệu dạng chuỗi. Một chuỗi là một dãy các ký tự. Tuy nhiên, Java không hỗ trợ kiểu dữ liệu nguyên thủy để lưu trữ các chuỗi, thay vào đó nó cung cấp một lớp có tên String để tạo biến chuỗi. Lớp String thuộc gói java.lang trong Java SE API. Câu lệnh sau đây sử dụng lớp String như một kiểu dữ liệu nguyên thủy:

String str = "Ngon ngu lap trinh Java";

Biến str ở trên không phải là biến có kiểu nguyên thủy, mà nó là một đối tượng.

Đoạn mã sau minh họa việc sử dụng các kiểu dữ liệu trên.

public class EmployeeData {
    public static void main(String[] args) {
    // khai báo biến kiểu nguyên int
    int empNumber;
    // khai báo biến kiểu thực float
    float salary; 
    // khai báo và khởi tạo giá trị cho biến kiểu double
    double shareBalance = 456790.897;
    // khai báo và khởi tạo giá trị cho biến kiểu ký tự
    char gender = ‘M’;
    // khai báo và khởi tạo giá trị cho biến kiểu boolean
    boolean ownVehicle = false;
    // khởi tạo giá trị cho các biến empNumber và salary
    empNumber = 101;
    salary = 6789.50f;
    // in ra giá trị trong các biến
    System.out.println("Employee Number: “ + empNumber);
    System.out.println("Salary: " + salary);
    System.out.println("Gender: " + gender);
    System.out.println("Share Balance: " + shareBalance);
    System.out.println("Owns vehicle: " + ownVehicle);
  }
}

Lưu ý là kiểu dữ liệu thực float cần có hậu tố f đặt sau giá trị gán cho biến. Mặc định tất cả các giá trị thực đều có kiểu double trong Java. Các giá trị được gán cho các biến và được hiển thị bằng cách sử dụng hàm System.out.println().

Output của đoạn mã trên như sau:

Java: Oupt của các kiểu dữ liệu nguyên thủy

Kiểu dữ liệu tham chiếu

Trong Java, các đối tượng và các mảng là các biến tham chiếu. Khi một đối tượng hay một mảng được tạo thì một vùng nhớ tương ứng được gán cho nó và địa chỉ của vùng nhớ này sẽ được lưu vào biến tham chiếu. Nói cách khác, kiểu dữ liệu tham chiếu là một địa chỉ của một đối tượng hay một mảng được tạo trong bộ nhớ.

Hình sau thể hiện các kiểu dữ liệu tham chiếu mà Java hỗ trợ.

Java: kiểu dữ liệu tham chiếu

Bảng sau đây liệt kê và mô tả ba kiểu dữ liệu tham chiếu trong Java.

Kiểu dữ liệu Mô tả
Array Là một tập hợp các phần tử (biến) có cùng kiểu dữ liệu. Ví dụ, tên của các sinh viên trong một lớp học có thể được lưu vào một mảng
Class Là sự đóng gói của các biến thể hiện và các phương thức thể hiện
Interface Là một kiểu lớp trong Java được dùng để thực thi thừa kế
» Tiếp: Từ khóa, tên riêng, ghi chú
« Trước: Download, cài đặt và chạy
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!