Thứ Bảy, 12 tháng 1, 2008

Primitive Data Types

Các ngôn ngữ lập trình Java là statically-typed, có nghĩa là tất cả các biến đầu tiên phải được khai báo trước khi chúng có thể được sử dụng. Điều này bao gồm việc nêu rõ kiểu của biến và tên, như bạn đã thấy:

int gear = 1;

Thực hiện như vậy cho chương trình của bạn là là một lĩnh vực mang tên "gear" tồn tại, tổ chức dữ liệu số, và có một giá trị ban đầu của "1 ". Kiểu dữ liệu của một biến xác định các giá trị nó có thể chứa, cộng với các hoạt động có thể được thực hiện trên đó. Ngoài int, các ngôn ngữ lập trình Java hỗ trợ bảy loại dữ liệu khác nguyên thủy. Một loại nguyên thủy được định nghĩa trước bởi ngôn ngữ và được đặt tên theo là một từ khoá được bảo lưu. Giá trị Primitive không trạng thái chia sẻ với các giá trị khác primitive. Tám dữ liệu nguyên gốc được hỗ trợ bởi các ngôn ngữ lập trình Java là:

byte: là một kiểu dữ liệu 8-bit và bổ sung hai của số nguyên. Nó có một giá trị tối thiểu là -128 và giá trị tối đa 127. Các kiểu dữ liệu byte có thể hữu ích để tiết kiệm bộ nhớ trong mảng lớn, nơi mà thực sự việc tiết kiệm bộ nhớ. Họ cũng có thể được sử dụng thay cho int nơi giới hạn của họ giúp đỡ để làm rõ mã của bạn, một thực tế là phạm vi của biến là giới hạn có thể dùng như một dạng tài liệu.

short: Là kiểu dữ liệu ngắn gọn 16-bit. Nó có một giá trị tối thiểu của -32.768 và giá trị tối đa 32767. Cũng như các byte, các nguyên tắc áp dụng: bạn có có thể sử dụng một đoạn ngắn với tiết kiệm bộ nhớ trong mảng lớn, trong trường hợp tiết kiệm bộ nhớ thực sự là vấn đề.

int: Là kiểu dữ liệu 32-bit. Nó có một giá trị tối thiểu -2147483648 và giá trị tối đa 2147483647. Đối với các giá trị tích phân, loại dữ liệu thường là lựa chọn mặc định trừ khi có một lý do khác với lựa chọn khác. Kiểu dữ liệu này rất có thể sẽ đủ rộng để cho các số chương trình của bạn sử dụng, nhưng nếu bạn cần là một phạm vi rộng hơn các giá trị, bạn thay thế để sử dụng.

long : Là kiểu dữ liệu 64-bit. Nó có một giá trị tối thiểu của -9.223.372.036.854.775.808 và giá trị tối đa 9223372036854775807. Sử dụng kiểu dữ liệu khi bạn cần một loạt các giá trị rộng lớn so với những người cung cấp bằng kiểu int.

float : Là kiểu dữ liệu đơn lẻ có độ chính xác 32-bit. Phạm vi của nó giá trị có nằm ngoài phạm vi của cuộc thảo luận này. Như với các khuyến nghị cho các byte và Short. Kiểu dữ liệu này không bao giờ được sử dụng cho các giá trị chính xác, chẳng hạn như tiền tệ. Tôi cho rằng, bạn sẽ cần sử dụng với lớp java.math.BigDecimal thay thế. Số lượng và Strings bao gồm BigDecimal và các class hữu ích được cung cấp bởi các nền tảng Java.

double :Làkiểu dữ liệu đúp có độ chính xác 64-bit. Đối với các giá trị thập phân, loại dữ liệu thường là lựa chọn mặc định. Như đã đề cập ở trên, kiểu dữ liệu này không bao giờ được sử dụng cho các giá trị chính xác, chẳng hạn như tiền tệ.

boolean: Những kiểu dữ liệu boolean chỉ có hai giá trị có thể: true và false. Sử dụng kiểu dữ liệu cho cờ để theo dõi điều kiện đúng/sai. Kiểu dữ liệu này đại diện cho một bit.

char: Những kiểu dữ liệu char 16-bit ký tự Unicode duy nhất. Nó có một giá trị tối thiểu là '\u0000' (hoặc 0) và một giá trị tối đa là '\uffff' (hoặc 65.535).

Ngoài tám dữ liệu nguyên gốc được liệt kê ở trên, ngôn ngữ lập trình Java cũng cung cấp hỗ trợ đặc biệt cho các chuỗi ký tự thông qua các lớp java.lang.String. Kèm theo chuỗi ký tự của bạn trong dấu ngoặc đúp sẽ tự động tạo một đối tượng String mới, ví dụ, String s = "này là một chuỗi";. Chuỗi các đối tượng là không thay đổi, có nghĩa là một khi tạo ra, giá trị của họ không thể thay đổi. Lớp String có kỹ thuật không phải một kiểu dữ liệu primitive, nhưng xem xét hỗ trợ đặc biệt dành cho nó bằng ngôn ngữ, bạn có thể sẽ có xu hướng nghĩ về nó như vậy. Bạn sẽ tìm hiểu thêm về lớp String trong Wikipedia Data Objects.

Giá trị mặc định
Nó không phải luôn luôn cần thiết với gán một giá trị khi trường được công bố. Những lĩnh vực được tuyên bố nhưng không được khởi tạo sẽ được đặt mặc định hợp lý bằng trình biên dịch. Nói chung, đây sẽ được mặc định bằng không hoặc vô giá trị, tùy thuộc vào loại dữ liệu. Dựa trên các giá trị mặc định như vậy, phong cách tuy nhiên, thường được coi là chương trình xấu.

Những biểu đồ sau đây tóm tắt các giá trị mặc định cho các kiểu dữ liệu ở trên.

Data Type                             Default Value (for fields)
byte                                                      0
short                                                     0
int                                                         0
long                                                      0L
float                                                      0.0f
double                                                  0.0d
char                                                      '\u0000'
String (or any object)                          null
boolean                                                false

Các biến local có một chút khác nhau, trình biên dịch không bao giờ gán một giá trị mặc định cho một biến local khi chưa được khởi tạo. Nếu bạn không thể khởi tạo biến local của bạn, nơi nó có khai báo, đảm bảo rằng nó một giá trị trước khi bạn cố gắng sử dụng nó. Truy cập vào một biến local khi chưa được khởi tạo sẽ được gây ra một lỗi trong thời gian biên dịch.

Literals

Bạn có thể đã nhận thấy rằng các từ khoá mới không được sử dụng khi khởi tạo một biến của một kiểu primitive. Các loại dữ liệu Primitive có loại đặc biệt được xây dựng trong ngôn ngữ, chúng không phải là đối tượng được tạo ra từ một lớp. Chữ A có mã nguồn đại diện của một giá trị cố định; literals có đại diện trực tiếp trong mã của bạn mà không cần tính toán. Như hình dưới đây, nó có thể chỉ định một chữ cho một biến của một kiểu primitive:

boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000; 

Các kiểu nguyên (byte, short, int, và dài) có thể được thể hiện bằng cách sử dụng số thập phân, bát phân, hoặc các hệ thống số thập lục phân. Thập phân có hệ thống số bạn đã sử dụng hàng ngày, nó dựa trên 10 chữ số, đánh số từ 0 đến 9. Hệ thống số bát phân có cơ sở 8, bao gồm các chữ số 0 đến 7. Hệ thống thập lục phân có căn cứ 16, có chữ số là những con số 0 đến 9 và các chữ cái từ A đến F. Đối với đa năng lập trình, hệ thống thập phân có thể sẽ là hệ thống chỉ số mà bạn từng sử dụng. Tuy nhiên, nếu bạn cần bát phân hay thập lục phân, ví dụ sau đây cho thấy cú pháp chính xác. Những tiền tố 0 chỉ bát phân, trong khi chỉ 0x thập lục phân.

int decVal = 26; // The number 26, in decimal
int octVal = 032; // The number 26, in octal
int hexVal = 0x1a; // The number 26, in hexadecimal

Các kiểu float (float và double) cũng có có thể được thể hiện bằng cách sử dụng điện hoặc điện tử (đối với ký hiệu khoa học), F hoặc f (32-bit chữ float) và D hoặc d (64-bit double literal, đây là mặc định và bằng quy ước được bỏ qua).

double d1 = 123.4;
double d2 = 1.234e2; // same value as d1, but in scientific notation
float f1 = 123.4f;

Literals các loại kiểu char và String có thể chứa bất kỳ Unicode (UTF-16) ký tự. Nếu trình biên tập của bạn và hệ thống tập tin cho phép nó, bạn có thể sử dụng các kí tự này trực tiếp trong mã của bạn. Nếu không, bạn có thể sử dụng một "escape Unicode" chẳng hạn như '\ u0108' (vốn C với circumflex), hoặc "S u00ED se \ \ u00F1or" (Sí Sir tiếng Tây Ban Nha). Luôn luôn sử dụng 'một dấu ngoặc kép "cho literals char và" dấu ngoặc kép "cho literals String. Trình tự Unicode thoát có thể được sử dụng ở nơi khác trong một chương trình (chẳng hạn như trong tên trường, ví dụ), không chỉ ở literals char hoặc String.

Những ngôn ngữ lập trình Java cũng hỗ trợ một dãy thoát đặc biệt cho các chữ số và ký tự String: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), \" (double quote), \' (single quote), và \\ (backslash)..

Có còn một null đặc biệt literal có thể được sử dụng như một giá trị cho bất kỳ kiểu tài liệu tham khảo. null có thể được chỉ định cho biến bất kỳ, trừ các biến của các loại primitive. Có ít bạn có thể làm với một giá trị null ngoài thử nghiệm cho sự hiện diện của nó. Vì vậy, vô thường được sử dụng trong các chương trình như là một dấu hiệu để cho biết rằng một số đối tượng có không có.

Cuối cùng, có cũng là một dạng đặc biệt của literal gọi là một lớp học literal, được hình thành bằng cách lấy một tên kiểu và phụ thêm "lớp.", ví dụ, String.class. Điều này nói đến đối tượng (của kiểu Class) đại diện cho kiểu chính nó.

DangTrung.

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

Đăng nhận xét