Các kiểu dữ liệu trong Java | Laptrinhcanban.com

Các kiểu dữ liệu trong Java

Cùng tìm hiểu về các kiểu dữ liệu trong Java. Dữ liệu trong Java được phân thành 2 kiểu dữ liệu lớn, đó là kiểu dữ liệu nguyên thủy với 8 kiểu con trong nó, và kiểu còn lại là kiểu dữ liệu đối tượng , và bạn sẽ học được chúng hoàn hảo trong bài học này.

Kiểu dữ liệu nguyên thủy trong Java

Kiểu dữ liệu nguyên thủy trong Java hay còn gọi là kiểu Primitive Data Types là các kiểu dữ liệu được Java cung cấp sẵn cho chúng ta sử dụng.

Kiểu dữ liệu nguyên thủy được chia thành 8 kiểu con, với tên của chúng được đặt thông qua 8 từ khóa của Java như sau:

KiểuBộ nhớPhạm vi giá trị
boolean1 bittrue / false
char16 bitKý tự Unicode \u0000 ~ \uFFFF
byte8 bit-128~127
short16 bit-32,768~32,767
int32 bit-2,147,483,648~2,147,483,647
long64 bit-9,223,372,036,854,775,808~9,223,372,036,854,775,807
float32 bitSố thực dấu phẩy động chính xác đơn
double64 bitSố thực dấu phẩy động chính xác kép

Để biểu diễn một số trong Java, chúng ta có rất nhiều kiểu dữ liệu khác nhau như int, short hay long chẳng hạn. Tuy nhiên phạm vi cũng như bộ nhớ của chúng là hoàn toàn khác nhau. Trong một chương trình đơn giản, sẽ không có vấn để gì nếu chúng ta lựa chọn kiểu dữ liệu có kích thước lớn nhất, ví dụ như kiểu long chẳng hạn, vì như thế chúng ta sẽ không phải lo lắng việc dữ liệu đem gán vào biến có lớn hơn kích thước của biến đó hay không.

Tuy nhiên, với các chương trình lớn hơn, việc sử dụng các kiểu dữ liệu lớn cho tất cả biến mà không xem xét kích thước lớn nhất mà biến đó cần, sẽ khiến cho chương trình sử dụng dư thừa bộ nhớ, gây lãng phí tài nguyên máy tính.

Vì thế, chúng ta cần phải biết phạm vi giá trị, kích thước của biến khi sử dụng, để có thể chỉ định kiểu dữ liệu cho phù hợp nhất.

Kiểu số nguyên trong Java

Có 4 kiểu dữ liệu ngyên thủy được sử dụng để biểu diễn số nguyên trong Java như sau:

KiểuPhạm vi
byte-128 ~ 127
short-32,768 ~ 32,767
int-2,147,483,648 ~ 2,147,483,647
long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

Trong đó, kiểu dữ liệu byte trong javakiểu dữ liệu short trong java do có kích thước quá nhỏ, và tốc độ xử lý của số thuộc kiểu int được cho là lớn hơn, nên về cơ bản, chúng ta sử dụng kiểu int để biểu diễn số trong Java.

Khi khai báo kiểu số nguyên trong Java, về cơ bản thì chúng ta viết các giá trị nằm trong phạm vi của kiểu dữ liệu được chỉ định, như cách gán biến thông thường. Ví dụ, chúng ta có thể khởi tạo và gán các biến thuộc kiểu int, short hay byte như sau:

int num1;
num1 = 256;

byte num2;
num2 = 10;

short num3;
num3 = 200;

Lưu ý trong trường hợp giá trị của số gán vào biến vượt qua phạm vi giá trị của kiểu của biến đó, chúng ta sẽ cần phải sử dụng tới suffix (hậu tố ) L để chỉ định. Ví dụ:

long num;
num = 39433204432234523L;

Kiểu số thực trong Java

Để có thể lưu số thực trong biến, Java chuẩn bị cho chúng ta 2 kiểu dữ liệu căn bản là float và double.

KiểuPhạm vi
float-3.4028235E+38 ~ 3.4028235E+38
double-1.79769313486231570E+308 ~ 1.79769313486231570E+308

Trong Java, kiểu double là kiểu mặc định sử dụng để biểu diễn số thực. Nếu chúng ta ghi giá trị một số thực mà không chỉ định kiểu cho nó, chương trình sẽ mặc định coi kiểu của số thực này là double.

Bởi vậy, chúng ta có thể gán giá trị trực tiếp của một số thực cho biến kiểu double như sau:

double num2;
num2 = 7.89;

Tuy nhiên, chúng ta lại không thể làm điều này được với biến thuộc kiểu float, vì lỗi compile sẽ xảy ra như sau:

float num1;
num1 = 1.23;

>>>Main.java:4: error: incompatible types: possible lossy conversion from double to float
>>>num1 = 1.23;
>>> ^

Lỗi trên xảy ra là bởi chúng ta đã gán số 1.23 thuộc kiểu mặc định double vào biến num1 thuộc kiểu float.

Do vậy, chúng ta cần chú ý khi gán một số thực cho biến thuộc kiểu float, hãy gán kèm suffix (hậu tố) F vào đằng sau số đó như sau:

float num1;
num1 = 1.23F;

Kiểu ký tự trong Java

Chúng ta sử dụng kiểu dữ liệu char trong Java để lưu giữ một ký tự trong một biến. Trong Java, kiểu char được định nghĩa là các số nguyên không âm nằm trong phạm vi từ \u0000 đến \uFFFF được sử dụng để lưu ký tự Unicode 16 bit.

Các ký tự được gán vào biến kiểu char cần phải được đặt trong cặp dấu nháy đơn, ví dụ như là 'a' hoặc 'A' chẳng hạn. Ngoài viết trực tiếp ký tự Unicode thì chúng ta cũng có thể sử dụng mã ký tự Unicode đại diện cho ký tự đó, theo cú pháp '\uxxxx' mà Kiyoshi đã hướng dẫn trong bài Biểu diễn ký tự trong Java thông qua mã ký tự.

Ví dụ, chúng ta sử dụng kiểu char để lưu ký tự khi khai báo biến trong Java như sau:

char c;
c = 'a';
c = '\u0061';

Kiểu Boolean trong Java

Kiểu Boolean trong Java cũng là một trong 8 kiểu dữ liệu nguyên thủy, bao gồm 2 giá trị là truefalse.

Kiểu Boolean thường được sử dụng trong các biểu thức điều kiện của vòng lặp for, hoặc là câu lệnh if.

Lưu ý kết quả của các phép Toán tử logic trong Java sẽ trả về kiểu Boolean, do đó chúng ta có thể sử dụng trực tiếp các giá trị trả về này để gán vào biến thuộc kiểu Boolean trong Java.

Ví dụ:

boolean is_odd_number = true;

boolean bigger = (1 > 2);

Kiểu dữ liệu đối tượng trong Java (Non - Primitive)

Ngoài các kiểu dữ liệu nguyên thủy mà Kiyoshi đã trình bày ở trên thì trong Java còn có một kiểu dữ liệu nữa, đó là kiểu đối tượng trong Java (Non - Primitive). Kiểu đối tượng bao gồm mảng, class và kiểu chuỗi. Tất cả các kiểu dữ liệu không phải kiểu nguyên thủy đều là kiểu dữ liệu đối tượng trong Java.

Kiểu dữ liệu đối tượng được dùng để lưu trữ các đối tượng xử lý trong chương trình, ví dụ như là mảng, chuỗi String, hoặc là thực thể tạo ra từ class chẳng hạn.

Lưu ý biến thuộc các kiểu dữ liệu đối tượng sẽ không lưu giữ trực tiếp giá trị của đối tượng, mà là địa chỉ của đối tượng đó trong bộ nhớ máy tính.

 Kiểu dữ liệu đối tượng trong Java (Non - Primitive)

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về các kiểu dữ liệu trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.