Biến trên thực tế là bộ nhớ để lưu một giá trị nào đó. Khi khai báo biến tức là ta đang khai báo với hệ thống dành riêng 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 đó. Trong Java có 2 kiểu dữ liệu có sẵn: Primitive (kiểu dữ liệu gốc) và Non-primitive (kiểu dữ liệu đối tượng) Mỗi kiểu ở trên chứa các kiểu dữ liệu con như sau:
Giá trị mặc định và bộ nhớ lưu trữ của các kiểu dữ liệuGiá trị mặc định và bộ nhớ của mỗi kiểu dược tóm tắt ở bản sau đây: Kiểu dữ liệu Giá trị mặc định Bộ 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 Kiểu Primitive1. BooleanĐây là kiểu dữ liệu có bộ nhớ lưu trữ nhỏ nhất, chỉ có 1 bit. Kiểu dữ liệu này được dùng để lưu trữ hai trạng thái true hoặc false Giá trị mặc định là false. Ví dụ: boolean extractall = true 2. CharKiểu dữ liệu này có thể dùng để lưu kí tự hoặc số nguyên không âm, có kích thước 2 byte. Giá trị nhỏ nhất là '\u0000' (hoặc 0) và giá trị lớn nhất là '\uffff' (hoặc 65,535). Ví dụ: char name ='A' Câu hỏi đặt ra là vì sao kiểu dữ liệu char có giá trị mặc định là '\u0000' và bộ nhớ là 2 byte? Lý do là vì Java sử dụng bảng mã Unicode. Trong Unicode mỗi ký tự giữ 2 byte, do đó Java cũng cấp cho kiểu dữ liệu char bộ nhớ 2 byte. 3. ByteKiểu dữ liệu này dùng để lưu số nguyên (âm hoặc dương), có kích thước 1 byte. Giá trị nhỏ nhất là -128 (-2^7) và giá trị lớn nhất là 127 (2^7 -1) Giá trị mặc định là 0. Ví dụ: byte x = 1 , byte y = -1 4. ShortDùng để lưu dữ liệu có kiểu số nguyên, nhưng kích cỡ lớn hơn byte. Bộ nhớ kiểu dữ liệu này là 2 byte. Giá trị nhỏ nhất là -32,768 (-2^15) và giá trị lớn nhất là 32,767 (2^15 -1) Giá trị mặc định là 0. Ví dụ: short t = 50, short z = -50 5. IntĐây cũng là kiểu dữ liệu dùng để lưu kiểu số nguyên, kích cỡ 4 byte (lớn hơn byte và short). Giá trị nhỏ nhất là - 2,147,483,648.(-2^31) và giá trị lớn nhất là 2,147,483,647 (2^31 -1) Thông thường, int được sử dụng làm 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 = 500, int b = -500 6. LongKiểu dữ liệu dùng để lưu số nguyên lớn nhất là Long. Kích cỡ của nó lên đến 8 byte. Giá trị nhỏ nhất là -9,223,372,036,854,775,808.(-2^63) và 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 = -100000L 7. FloatFloat là kiểu dữ liệu lưu số thực, kích cỡ 4 byte. 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 jpy = 22.2f 8. DoubleDouble cũng là kiểu dữ liệu để lưu số thực, nhưng kích thước dữ liệu lớn hơn Float. Bộ nhớ của nó là 8 byte. Thông thường, kiểu dữ liệu này được sử dụng làm kiểu mặc định cho các giá trị decimal. Kiểu double cũng 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 ct = 676.7 Kiểu Non - PrimitiveTrong Java tồn tại kiểu biến đối tượng, được tạo bằng cách sử dụng các constructor đã được định nghĩa của các class. 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ể và không thể thay đổi được Giá trị mặc định của kiểu biến đối tượng là null. Có thể sử dụng biến đối tượ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. Ý nghĩa: Trả về một số nguyên là kết quả so sánh hai chuỗi st1, st2. Nếu hai chuỗi đó bằng nhau thì kết quả bằng 0, nếu chuỗi st1 < st2 thì kết quả là số âm, ngược lại nếu chuỗi st1 > st2 thì kết quả là số dương. Cách thực hiện so sánh:
Ví dụ: public class VDCompareTo { public static void main(String[] args) { String st1 = “HOA HAU”; String st2 = “HOA HAU”; System.out.println(st1.compareTo(st2)); } } Kết quả: 0
Ví dụ: public class VDCompareTo { public static void main(String[] args) { String st1 = “THI”; String st2 = “THIUNGXU”; System.out.println(st1.compareTo(st2)); } } Kết quả: -5
Ví dụ: public class VDCompareTo { public static void main(String[] args) { String st1 = “AD”;//D:68 String st2 = “AB”;//B:66 System.out.println(st1.compareTo(st2)); } } Kết quả: 2
Cú pháp: st1.indexOf(String st2 [,int fromIndex]); Ý nghĩa: Trả về một số nguyên là vị trí xuất hiện đầu tiên của chuỗi st2 trong st1 hoặc bắt đầu tử chỉ số fromIndex nếu có. Nếu chuỗi st2 không có trong chuỗi st1 thì kết quả trả về -1. Ví dụ:
Cú pháp: st1.lastIndexOf(String st2); Ý nghĩa: Trả về một số nguyên là vị trí xuất hiện cuối cùng của chuỗi st2 trong st1. Nếu chuỗi st2 không có trong chuỗi st1 thì kết quả trả về -1. Ví dụ:
Cú pháp: st1.replace(char oldChar, char newChar); Ý nghĩa: Thực hiện thay thế ký tự oldChar bằng ký tự newChar trong chuỗi st1. Nếu ký tự cần thay thế không có trong chuỗi st1 thì chương trình sẽ trả về chuỗi st1. Ví dụ: Lưu ý: Phương thức replaceAll(): tương tự như phương thức replace() nhưng chỉ thực hiện thay thế chuỗi. Phương thức replaceFirst(): tương tự như phương thức replaceAll() nhưng chỉ thực hiện thay thế chuỗi con đầu tiên có trong st1. Ví dụ:
Cú pháp: st1.split(String st2, int limit) Ý nghĩa: Trả về một mảng các chuỗi con bằng cách tách các phần tử trong chuỗi st1 bằng chuỗi st2. limit: kiểm soát số lượng các chuỗi con kết quả. Ví dụ:
Cú pháp: st.substring(int startIndex [, int endIndex]); Ý nghĩa: Tạo một chuỗi con từ vị trí có chỉ số là stratIndex trong chuỗi st. Trong trường hợp có endIndex, thì phương thức sẽ tạo một chuỗi con bắt đầu từ vị trí có chỉ số là startIndex và kết thúc tại vị trí có chỉ số endIndex – 1 trong chuỗi st. Ví dụ:
Cú pháp: st.trim(); Ý nghĩa: Thực hiện sẽ loại bỏ các khoảng trắng thừa ở đầu và cuối chuỗi st. Nếu chuỗi đó không có khoảng trắng thừa thì chương trình sẽ trả về chuỗi gốc. |