1. Biến trong Java
Biến là vùng nhớ lưu trữ tạm thời dữ liệu nhập vào hay tính toán để xử lý. Giá trị của biến có thể thay đổi.Mỗi biến gắn liền với một kiểu dữ liệu và một tên duy nhất gọi là tên biến.
- Tên biến thông thường là một chuỗi các ký tự (Unicode), ký số.
- Tên biến phải bắt đầu bằng một chữ cái hoặc một dấu gạch dưới hay dấu dollar.
- Tên biến không có khoảng trắng ở giữa tên.
- Trong java, biến có thể được khai báo ở bất kỳ nơi đâu trong chương trình.
- Tên biến không được trùng với các từ khóa trong Java.
H1 - Bảng Java Keywords
Ví dụ:
Tên biến đúng: a , _a, A, _b, _B, $d, tenBien, tenBien1, tenBien2
Tên biến sai: 1a , ten bien, 1gia tri, if, try
Ví dụ:
int giaTri;
String hoTen;
- Ngoài ra còn có thêm từ khóa (public, private, ….) trước dòng khai báo biến (vd: private String hoTen), phần này mình sẽ nói khi chúng ta sang phần hướng đối tượng trong Java.
- Để gán giá trị cho biến ta chỉ việc dùng cú pháp Tên biến = giá trị, hoặc gán ngay trong quá trình khai báo.
Ví dụ:
int giaTri;
giaTri = 5;
Hoặc
int giaTri = 5;
long giaTri = 5l; //thêm chữ 'l' sau để chỉ kiểu long.
double giaTri = 0.5;
*Khai báo biến trong hệ nhị phân, bát phân, thập lục phân.
int baseDecimal = 267;
int octVal = 0413; //267 = 413 trong hệ cơ số 8
int hexVal = 0x10B; //267 = 10B trong hệ cơ số 16
int binVal = 0b100001011; //267 = 100001011 trong hệ nhị phân.
Lưu ý: Khi muốn dùng các biến có giá trị lớn hơn kiểu int ta dùng BigInteger, lớn hơn kiểu double ta dùng BigDecimal trong package java.math;
- Tên hằng được đặt theo qui ước giống như tên biến.
Cú pháp khai báo hằng: final <kiểu dữ liệu> <tên hằng> = giá trị cần gán.
Ví dụ:
final int MAX = 1000; // khai báo hằng MAX có giá trị 1000
Giả sử biến A giữ giá trị 10, biến B giữ giá trị 20, thì:
Ví dụ:
Tên biến đúng: a , _a, A, _b, _B, $d, tenBien, tenBien1, tenBien2
Tên biến sai: 1a , ten bien, 1gia tri, if, try
Lưu ý: Trong Java phân biệt chữ hoa chữ thường, vì vậy chúng ta cần lưu ý khi đặt tên cho các biễn, các đối tương dữ liệu cũng như các xử lý trong chương trình. Khi đặt tên biến phải thống nhất để dễ quản lý code, code nhìn đẹp dễ hiểu.. Đặt tên biến phải liên quan đến mụch đích và ý nghĩa của biến.
2. Khai báo biến
Cấu trúc câu lệnh khai báo biến trong java như sau: <Kiểu dữ liệu> <tên biến>;Ví dụ:
int giaTri;
String hoTen;
- Ngoài ra còn có thêm từ khóa (public, private, ….) trước dòng khai báo biến (vd: private String hoTen), phần này mình sẽ nói khi chúng ta sang phần hướng đối tượng trong Java.
- Để gán giá trị cho biến ta chỉ việc dùng cú pháp Tên biến = giá trị, hoặc gán ngay trong quá trình khai báo.
Ví dụ:
int giaTri;
giaTri = 5;
Hoặc
int giaTri = 5;
long giaTri = 5l; //thêm chữ 'l' sau để chỉ kiểu long.
double giaTri = 0.5;
*Khai báo biến trong hệ nhị phân, bát phân, thập lục phân.
int baseDecimal = 267;
int octVal = 0413; //267 = 413 trong hệ cơ số 8
int hexVal = 0x10B; //267 = 10B trong hệ cơ số 16
int binVal = 0b100001011; //267 = 100001011 trong hệ nhị phân.
Lưu ý: Khi muốn dùng các biến có giá trị lớn hơn kiểu int ta dùng BigInteger, lớn hơn kiểu double ta dùng BigDecimal trong package java.math;
3. Hằng trong Java
- Hằng là một giá trị bất biến trong chương trình- Tên hằng được đặt theo qui ước giống như tên biến.
Cú pháp khai báo hằng: final <kiểu dữ liệu> <tên hằng> = giá trị cần gán.
Ví dụ:
final int MAX = 1000; // khai báo hằng MAX có giá trị 1000
4. Toán tử trong Java
Java cung cấp rất nhiều toán tử đa dạng để thao tác với các biến. Chúng ta có thể chia tất cả các toán tử trong Java thành các nhóm sau:- Toán tử số học
- Toán tử quan hệ
- Toán tử thao tác bit
- Toán tử logic
- Toán tử gán
- Và các toán tử hỗn hợp
4.1 Toán tử số học
Các toán tử số học được sử dụng trong các biểu thức toán học theo cách tương tự như chúng được sử dụng trong đại số học. Bảng sau liệt kê các toán tử số học trong Java.Giả sử biến A giữ giá trị 10, biến B giữ giá trị 20, thì:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
+ | Phép cộng | A + B sẽ cho kết quả 30 |
- | Phép trừ: trừ toán hạng trái cho toán hạng phải | A - B sẽ cho kết quả -10 |
* | Phép nhân | A * B sẽ cho kết quả 200 |
/ | Phép chia: chia toán hạng trái cho toán hạng phải | B / A sẽ cho kết quả 2 |
% | Phép chia lấy phần dư: Lấy phần dư của phép chia toán hạng trái cho toán hạng phải | B % A sẽ cho kết quả 0 |
++ | Phép lượng gia: lượng gia giá trị toán hạng thêm 1 | B++ sẽ cho kết quả 21 |
-- | Phép lượng giảm: lượng giảm giá trị toán hạng đi 1 | B-- sẽ cho kết quả 19 |
public class Test { public static void main(String args[]) { int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) ); System.out.println("a * b = " + (a * b) ); System.out.println("b / a = " + (b / a) ); System.out.println("b % a = " + (b % a) ); System.out.println("c % a = " + (c % a) ); System.out.println("a++ = " + (a++) ); System.out.println("b-- = " + (a--) ); // Check the difference in d++ and ++d System.out.println("d++ = " + (d++) ); System.out.println("++d = " + (++d) ); } }Kết quả:
a + b = 30 a - b = -10 a * b = 200 b / a = 2 b % a = 0 c % a = 5 a++ = 10 b-- = 11 d++ = 25 ++d = 27
4.2 Toán tử quan hệ trong Java
Các toán tử quan hệ kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean (logic “true” hoặc “false”). Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Giả sử biến A giữ giá trị 1, biến B giữ giá trị 2, thì:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
== | Kiểm tra nếu giá trị của hai toán hạng có cân bằng hay không, nếu có thì điều kiện là true. | (A == B) là false. |
!= | Kiểm tra nếu giá trị hai toán hạng là cân bằng hay không, nếu không cân bằng, thì điều kiện là true | (A != B) là true. |
> | Kiểm tra nếu toán hạng trái có lớn hơn toán hạng phải hay không, nếu có thì điều kiện là true | (A > B) là false. |
< | Kiểm tra nếu toán hạng phải có lớn hơn toán hạng trái hay không, nếu có thì điều kiện là true | (A < B) là true. |
>= | Kiểm tra nếu toán hạng trái có lớn hơn hoặc bằng toán hạng phải hay không, nếu có thì điều kiện là true | (A >= B) là false. |
<= | Kiểm tra nếu toán hạng phải có lớn hơn hoặc bằng toán hạng trái hay không, nếu có thì điều kiện là true | (A <= B) là true. |
Ví dụ:
public class Test { public static void main(String args[]) { int a = 1; int b = 2; System.out.println("a == b = " + (a == b) ); System.out.println("a != b = " + (a != b) ); System.out.println("a > b = " + (a > b) ); System.out.println("a < b = " + (a < b) ); System.out.println("b >= a = " + (b >= a) ); System.out.println("b <= a = " + (b <= a) ); } }
Kết quả:
a == b = false a != b = true a > b = false a < b = true b >= a = true b <= a = false
4.3 Toán tử thao tác bit
Java định nghĩa một số toán tử thao tác bit có thể được áp dụng cho các kiểu giá trị integer, long, int, short, char, và byte.
Toán tử thao tác bit làm việc trên các bit. Giả sử nếu a = 60 và b = 13, thì trong định dạng nhị phân chúng sẽ như sau:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Bảng dưới đây liệt kê các toán tử bit được hỗ trợ trong Java:
Giả sử biến A giữ giá trị 60 và biến B giữ 13 thì khi đó:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
& | Toán tử Và nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng | (A & B) sẽ cho kết quả 12, hay là 0000 1100 |
| | Toán tử Hoặc nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng | (A | B) sẽ cho kết quả 61, hay là 0011 1101 |
^ | Toán tử Hoặc loại trừ nhị phân sao chép bit nếu nó được thiết lập trong một toán hạng nhưng không phải trong cả hai | (A ^ B) sẽ cho kết quả 49, hay là 0011 0001 |
~ | Toán tử đảo bit là toán tử một ngôi. Đảo bít 1 thành 0 và ngược lại | (~A ) sẽ cho kết quả -61, hay là 1100 0011 |
<< | Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải. | A << 2 sẽ cho kết quả 240, hay là 1111 0000 |
>> | Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải | A >> 2 sẽ cho kết quả 15, hay là 1111 |
>>> | Toán tử dịch phải và điền 0 vào chỗ trống | A >>>2 sẽ cho kết quả 15, hay là 0000 1111 |
Ví dụ:
public class Test { public static void main(String args[]) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ System.out.println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ System.out.println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ System.out.println("a ^ b = " + c ); c = ~a; /*-61 = 1100 0011 */ System.out.println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ System.out.println("a << 2 = " + c ); c = a >> 2; /* 215 = 1111 */ System.out.println("a >> 2 = " + c ); c = a >>> 2; /* 215 = 0000 1111 */ System.out.println("a >>> 2 = " + c ); } }
Kết quả:
a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 15 a >>> 15
4.4 Toán tử logic trong Java
Bảng dưới liệt kê đầy đủ các toán tử logic trong Java:
Giả sử biến A giữ true và biến B giữ false thì khi đó:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
&& | Toán tử Và logic. Nếu cả hai toán hạng là khác không, thì khi đó điều kiện là true | (A && B) là false. |
|| | Toán tử Hoặc logic. Nếu một trong hai toán tử khác 0, thì điều kiện là true | (A || B) là true. |
! | Toán tử Phủ định logic. Sử dụng để đảo ngược lại trạng thái logic của toán hạng đó. Nếu điều kiện toán hạng là true thì phủ định nó sẽ là false | !(A && B) là true. |
4.5 Các toán tử gán
Bảng dưới đây liệt kê các toán tử gán được hỗ trợ bởi Java:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
= | Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái. | C = A + B sẽ gán giá trị của A + B vào cho C |
+= | Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái. | C += A là tương đương với C = C + A |
-= | Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái. | C -= A là tương đương với C = C - A |
*= | Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái. | C *= A là tương đương với C = C * A |
/= | Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái. | C /= A là tương đương với C = C / A |
%= | Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái. | C %= A là tương đương với C = C % A |
<<= | Dịch trái toán hạng trái sang số vị trí là giá trị toán hạng phải. | C <<= 2 là giống như C = C << 2 |
>>= | Dịch phải toán hạng trái sang số vị trí là giá trị toán hạng phải. | C >>= 2 là giống như C = C >> 2 |
&= | Phép AND bit | C &= 2 là giống như C = C & 2 |
^= | Phép OR loại trừ bit | C ^= 2 là giống như C = C ^ 2 |
|= | Phép OR bit. | C |= 2 là giống như C = C | 2 |
Ví dụ:
public class Test { public static void main(String args[]) { int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c ); c += a ; System.out.println("c += a = " + c ); c -= a ; System.out.println("c -= a = " + c ); c *= a ; System.out.println("c *= a = " + c ); a = 10; c = 15; c /= a ; System.out.println("c /= a = " + c ); a = 10; c = 15; c %= a ; System.out.println("c %= a = " + c ); c <<= 2 ; System.out.println("c <<= 2 = " + c ); c >>= 2 ; System.out.println("c >>= 2 = " + c ); c >>= 2 ; System.out.println("c >>= a = " + c ); c &= a ; System.out.println("c &= 2 = " + c ); c ^= a ; System.out.println("c ^= a = " + c ); c |= a ; System.out.println("c |= a = " + c ); } }
Kết quả:
c = a + b = 30 c += a = 40 c -= a = 30 c *= a = 300 c /= a = 1 c %= a = 5 c <<= 2 = 20 c >>= 2 = 5 c >>= 2 = 1 c &= a = 0 c ^= a = 10 c |= a = 10
4.6 Toán tử 3 ngôi
Toán tử này gồm ba toán hạng và được sử dụng để ước lượng các biểu thức quan hệ. Mục tiêu của toán tử là quyết định giá trị nào sẽ được gán cho biến. Toán tử này được viết như sau:
variable x = (expression) ? valueiftrue : valueiffalse
Sau đây là ví dụ:
public class Test { public static void main(String args[]){ int a , b; a = 10; b = (a == 1) ? 20: 30; System.out.println( "Value of b is : " + b ); b = (a == 10) ? 20: 30; System.out.println( "Value of b is : " + b ); } }
Nó sẽ cho kết quả sau:
Value of b is : 30 Value of b is : 20
5. Thứ tự ưu tiên của các phép toán trong Java
Thứ tự ưu tiên của các toán tử xác định cách biểu thức được tính toán. Ví dụ: toán tử nhân có quyền ưu tiên hơn toán tử cộng.
Ví dụ, x = 7 + 3 * 2; ở đây, x được gán giá trị 13, chứ không phải 20 bởi vì toán tử * có quyền ưu tiên cao hơn toán tử +, vì thế đầu tiên nó thực hiện phép nhân 3 * 2 và sau đó thêm với 7.
Bảng dưới đây liệt kê thứ tự ưu tiên của các toán tử. Các toán tử với quyền ưu tiên cao nhất xuất hiện trên cùng của bảng, và các toán tử có quyền ưu tiên thấp nhất thì ở bên dưới cùng của bảng. Trong một biểu thức, các toán tử có quyền ưu tiên cao nhất được tính toán đầu tiên.
Loại | Toán tử | Thứ tự ưu tiên |
---|---|---|
Postfix | () [] . (toán tử dot) | Trái sang phải |
Unary | ++ - - ! ~ | Phải sang trái |
Tính nhân | * / % | Trái sang phải |
Tính cộng | + - | Trái sang phải |
Dịch chuyển | >> >>> << | Trái sang phải |
Quan hệ | > >= < <= | Trái sang phải |
Cân bằng | == != | Trái sang phải |
Phép AND bit | & | Trái sang phải |
Phép XOR bit | ^ | Trái sang phải |
Phép OR bit | | | Trái sang phải |
Phép AND logic | && | Trái sang phải |
Phép OR logic | || | Trái sang phải |
Điều kiện | ?: | Phải sang trái |
Gán | = += -= *= /= %= >>= <<= &= ^= |= | Phải sang trái |
Dấu phảy | , | Trái sang phải |
0 comments: