Thứ Hai, 27 tháng 7, 2015

[Java Cơ bản] Các kiểu dữ liệu nguyên thủy trong java

    Ngôn ngữ java cung cấp 8 kiểu dữ liệu nguyên thủy : byte, short, int, long, float, double, char. boolean. Khi chúng ta khai báo một biến và gán giá trị cho nó,hệ điều hành sẽ cấp phát một lượng bộ nhớ có kích thước phù hợp với kiểu khai báo.

Phần 1 : cơ chế lưu trữ & kích thước bộ nhớ.
    Như chúng ta đã biết, trong máy tính tất cả kiểu dữ liệu  đều là một dãy các bit. Với mỗi bit, chúng ta sẽ có 2 trạng thái 0 và 1 (on/off).
    Như vậy :
  • Với mỗi 1 bit, có thể biểu diễn được 2 trạng thái : 0 và 1 (2^1 trạng thái)
  • Với 2 bit, ta có thể biểu diễn được  4 trạng thái : 00, 01, 10, 11 (2^2 trạng thái)
  • Với 3 bit, ta có thể biểu diễn được  8 trạng thái : (2^3 trạng thái)
    • 000, 001, 010, 011
    • 100, 101, 110, 111
Tương tự như vậy, với 8 bit ( 1 byte ), chúng ta có thể biểu diễn được 2^8 = 256 trạng thái. Hãy tưởng tượng, nếu với 1 trạng thái được quy định tương ứng với 1 ký tự. 1 số, thì chúng ta sẽ có 1 bảng mã 256 ký tự, với mỗi ký tự là 1 byte (chính là bảng mã ASCII).
 Để hiểu rõ hơn, các bạn nên tham khảo qua về hệ nhị phân : https://vi.wikipedia.org/wiki/H%E1%BB%87_nh%E1%BB%8B_ph%C3%A2n. Vì trong khuôn khổ bài viết không cho phép, mình chỉ trình bày sơ qua về cách biểu diễn dữ liệu trong máy tính.

Phần 2 : Các kiểu dữ liệu nguyên thủy.

Data Type
Size
Min
Max
Default
byte
8 bit
-128
127
0
short
16 bit
-32,768 (-2^15)
32,767 (2^15 -1)
0
int
32 bit
- 2,147,483,648 (-2^31)
2,147,483,647 (2^31 -1)
0
long
64 bit
-2^63
2^63 -1
0
float
32 bit
0x0.000002P-126f
0x1.fffffeP+127f
0.0f
double
64 bit
4.9e-324
1.7976931348623157e+308
0.0d
char
16 bit
0
65,535
\u0000
boolean
1 bit


false

* Lưu ý : 
  • Các kiểu dữ liệu nguyên thủy khi khao báo thì luôn luôn có giá trị khởi tạo mặc định, và không có khái niệm null đối với các kiểu dữ liệu nguyên thủy, kể cả kiểu dữ liệu char
  •  Java không support khái niệm unsigned như C hay những ngôn ngữ khác

Example :
public class TypeJava {

 static byte b;
 static char c;
 static boolean s;
 
 public static void main(String[] args) {
  
  b++;
  System.out.println(b);
  System.out.println(c);
  System.out.println(s);
 }
}

Output
1
1.0
false

Nếu bài viết có gì sai sót, mong các bạn góp ý. Thank

Không có nhận xét nào:

Đăng nhận xét