14/08/2018, 13:23

Kiểu dữ liệu trong Java

Các biến là không gì khác ngoài các vị trí bộ nhớ dành riêng để lưu các giá trị. Nghĩa là, khi bạn tạo một biến, bạn dự trữ một số không gian trong bộ nhớ. Dựa trên kiểu dữ liệu của một biến, hệ điều hành cấp phát bộ nhớ và quyết định cái gì có thể được lưu giữ trong bộ nhớ dành riêng. Vì ...

Các biến là không gì khác ngoài các vị trí bộ nhớ dành riêng để lưu các giá trị. Nghĩa là, khi bạn tạo một biến, bạn dự trữ một số không gian trong bộ nhớ.

Dựa trên kiểu dữ liệu của một biến, hệ điều hành cấp phát bộ nhớ và quyết định cái gì có thể được lưu giữ trong bộ nhớ dành riêng. Vì thế, bằng việc gán các kiểu dữ liệu khác nhau tới các biến, bạn có thể lưu giữ integer, thập phân, hoặc các ký tự trong những biến này.

Có hai kiểu dữ liệu có sẵn trong Java:

Kiểu dữ liệu trong Java

Trước khi đi vào giới thiệu chi tiết về từng kiểu dữ liệu, bạn có thể theo dõi bảng tóm tắt sau:

Kiểu dữ liệu Giá trị mặc định Kích cỡ mặc định
boolean false 1 bit
char 'u0000' 2 byte
byte 0 1 byte
short 0 2 byte
int 0 4 byte
long 0L 8 byte
float 0.0f 4 byte
double 0.0d 8 byte

Câu hỏi: Tại sao char sử dụng 2 byte trong Java và u0000 là gì?

Bởi vì Java sử dụng Unicode chứ không phải ASCII. u0000 là dãy thấp nhất trong Unicode.

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

Có 8 kiểu dữ liệu gốc được hỗ trợ bởi Java. Các kiểu dữ liệu gốc này được tiền định nghĩa bởi ngôn ngữ và được định danh bởi một từ khóa. Dưới đây là chi tiết về 8 kiểu dữ liệu gốc này:

char:

Tại sao Java sử dụng Unicode?

Trước Unicode, có nhiều chuẩn ngôn ngữ như ASCII, ISO 8859-1, KOI-8, GB18030, … Điều này gây là hai vấn đề sau:

Để xử lý các vấn đề này, một chuẩn ngôn ngữ mới được phát triển, đó là Unicode. Trong Unicode, ký tự giữ 2 byte, vì thế Java cũng sử dụng 2 byte cho các ký tự.

Kiểu dữ liệu byte:

Kiểu dữ liệu short:

int:

long:

float:

double:

boolean:

Kiểu dữ liệu Object trong Java

Literal trong Java

Một Literal hay một hằng là một code nguồn biểu diễn một giá trị cố định. Chúng được biểu diễn một cách trực tiếp trong code mà không cần kỹ thuật tính toán nào.

Các literal có thể được gán tới bất kỳ kiểu biến gốc nào. Ví dụ:

byte a = 12;
char a = 'CAT'

byte, int, long, và short có thể được biểu diễn trong hệ thập phân (cơ số 10), hệ thập lục phân (cơ số 16), hoặc hệ bát phân (cơ số 8).

Tiền tố 0 được sử dụng để chỉ hệ bát phân, và tiền tố 0x chỉ dẫn hệ cơ số 16 khi sử dụng những hệ cơ số này cho các literal. Ví dụ:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

String literal (hằng chuỗi) trong Java được xác định giống như trong hầu hết các ngôn ngữ khác bằng việc bao quanh một chuỗi ký tự liên tục trong trích dẫn kép. Ví dụ về string literal:

"Hello World"
"Hai
dong"
""Day la trong trich dan""

Các hằng chuỗi và hằng ký tự có thể chứa bất kỳ ký tự Unicode nào. Ví dụ:

char x = 'u0001';
String y = "u0001";

Ngôn ngữ Java hỗ trợ một số dãy thoát đặc biệt cho hằng chuỗi và hằng ký tự như sau:

Ký hiệu Biểu diễn ký tự
Newline (0x0a)
Carriage return (0x0d)
f Formfeed (0x0c)
 Backspace (0x08)
s Space (0x20)
tab
" Trích dẫn kép
' Trích dẫn đơn
backslash
ddd Octal character (ddd)
uxxxx Hexadecimal UNICODE character (xxxx)

0