Friday, January 8, 2016

Bài 7 Java - Basic Datatypes Kiểu Dữ Liệu Cơ Bản

Trong Java kiểu dữ liệu được chia thành hai loại:
  • Các kiểu dữ liệu nguyên thủy (primitive)
  • Các kiểu dữ liệu tham chiếu (reference)
Primitive Data Types - Kiểu Dữ Liệu Nguyên Thủy

Có 8 kiểu dữ liệu nguyên thủy đượ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 như sau:

1. byte:
  • Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bit)
  • Giá trị nhỏ nhất là -128 (-2^7)
  • Giá trị lớn nhất là 127. (2^7 -1)
  • Giá trị mặc định là 0
  • Kiểu dữ liệu byte được sử dụng để lưu giữ khoảng trống trong các mảng lớn, chủ yếu là khoảng trống của các số nguyên. Một byte là nhỏ hơn so với một int khoảng 4 lần
  • Ví dụ: byte a = 100 , byte b = -50

2. short:
  • Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bit).
  • Giá trị nhỏ nhất là -32,768 (-2^15)
  • Giá trị lớn nhất là 32,767. (2^15 -1)
  • Kiểu dữ liệu short cũng có thể được sử dụng để tiết kiệm bộ nhớ như kiểu dữ liệu byte. Một short nhỏ hơn 2 lần so với một int
  • Giá trị mặc định là 0.
  • Ví dụ: short s = 10000, short r = -20000

3. int:
  • Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bit).
  • Giá trị nhỏ nhất là - 2,147,483,648.(-2^31)
  • Giá trị lớn nhất là 2,147,483,647. (2^31 -1)
  • Nói chung, int được sử dụng như là kiểu dữ liệu mặc định cho các giá trị nguyên.
  • Giá trị mặc định là 0.
  • Ví dụ: int a = 100000, int b = -200000

4. 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ị nhỏ nhất là -9,223,372,036,854,775,808.(-2^63)
  • Giá trị lớn nhất là 9,223,372,036,854,775,807. (2^63 -1)
  • Kiểu này được sử dụng khi cần một dải giá trị rộng hơn int.
  • Giá trị mặc định là 0L.
  • Ví dụ: long a = 100000L, int b = -200000L

5. float:
  • Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bit)
  • Kiểu Float được sử dụng chủ yếu để lưu bộ nhớ trong các mảng rộng hơn các số dấu chấm động.
  • Giá trị mặc định là 0.0f.
  • Kiểu Float không bao giờ được sử dụng cho các giá trị chính xác như currency.
  • Ví dụ: float f1 = 234.5f

6. double:
  • Kiểu dữ liệu double được sử dụng để lưu dữ liệu có kiểu số thực có kích thước lên đến 8 byte.
  • Nói chung, kiểu dữ liệu này được sử dụng như là kiểu mặc định cho các giá trị decimal.
  • Kiểu double không bao giờ được sử dụng cho các giá trị chính xác như currency.
  • Giá trị mặc định là 0.0d.
  • Ví dụ: double d1 = 123.4

7. boolean:
  • Độ lớn chỉ có 1 bit
  • Dùng để lưu dữ liệu chỉ có hai trạng thái true hoặc false
  • Giá trị mặc định là false.
  • Ví dụ: boolean one = true

8. 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 bit)
  • Giá trị nhỏ nhất là '\u0000' (hoặc 0).
  • Giá trị lớn nhất là '\uffff' (hoặc 65,535).
  • Kiểu char được sử dụng để lưu bất kỳ ký tự nào
  • Ví dụ: char letterA ='A'

Reference Data Types - Kiểu dữ liệu tham chiếu trong Java

Các biến tham chiếu được tạo bởi sử dụng các constructor đã được định nghĩa của các lớp. Chúng được sử dụng để truy cập các đối tượng. Những biến này được khai báo ở kiểu cụ thể mà không thể thay đổi. Ví dụ: Employee, Puppy, …
Giá trị mặc định của bất kỳ biến đối tượng nào là null
Một biến đối tượng có thể được sử dụng để tham chiếu tới bất kỳ đối tượng nào trong kiểu được khai báo hoặc bất kỳ kiểu tương thích nào.
Ví dụ: Animal animal = new Animal("giraffe");

Ép kiểu (Type casting)

Có thể bạn sẽ gặp tình huống khi cộng một biến có dạng integer với một biến có dạng float. Để xử lý tình huống này, Java sử dụng tính năng ép kiểu (type casting) của các phần mềm trước đó C, C++. Lúc này một kiểu dữ liệu sẽ chuyển đổi sang kiểu khác. Khi sử dụng tính chất này, bạn cần thận trọng vì khi điều chỉnh dữ liệu có thể bị sai giá trị.

Đoạn mã sau đây thực hiện phép cộng một giá trị dấu phẩy động (float) với một giá trị nguyên (integer):

float c=34.896751f;
Int b = (int)c; // ép kiểu float sang Int
Int c = b + 10;

Java Literals:
Ngôn ngữ Java hỗ trợ vài trình tự thoát ra đặc biệt cho String và char như sau:

NotationCharacter represented
\nNewline (0x0a)
\rCarriage return (0x0d)
\fFormfeed (0x0c)
\bBackspace (0x08)
\sSpace (0x20)
\ttab
\"Double quote
\'Single quote
\\backslash
\dddOctal character (ddd)
\uxxxxHexadecimal UNICODE character (xxxx)

No comments:

Post a Comment