Table of Contents
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:
1. Toán tử số học
| Toán tử | Miêu tả | Ví dụ: B = 20, A = 10 |
| + | 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 |
2. Toán tử quan hệ
| TOÁN TỬ | MIÊU TẢ | VÍ DỤ: B = 20, A = 10 |
|---|---|---|
| == | 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à không true. |
| != | 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à không true. |
| < | 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à không true. |
| <= | 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. |
3. Toán tử thao tác bit
| TOÁN TỬ | MIÊU TẢ | VÍ DỤ: B = 20, A = 10 |
|---|---|---|
| & | 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 |
4. Toán tử logic
| TOÁN TỬ | MIÊU TẢ | VÍ DỤ: B = 20, A = 10 |
|---|---|---|
| && | 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. |
5. Các toán tử gán
| TOÁN TỬ | MIÊU TẢ | VÍ DỤ: B = 20, A = 10 |
|---|---|---|
| = | 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 |
6. Toán tử hỗn hợp
Toán tử điều kiện ( ? : )
Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao gồm ba thành phần cấu thành biểu thức điều kiện. Cú pháp:
<biểu thức 1> ? <biểu thức 2> : <biểu thức3>;
- biểu thức 1: Biểu thức logic. Trả trả về giá trị True hoặc False
- biểu thức 2: Là giá trị trả về nếu <biểu thức=”” 1=””>xác định là True</biểu>
- biểu thức 3: Là giá trị trả về nếu <biểu thức=”” 1=””>xác định là False</biểu>
Ví dụ:
public static void main(String[] args) {
int a = 20;
int b = 3;
String s = (a % b == 0) ? "a chia het cho b" : "a khong chia het cho b"; System.out.println(s); }[/code]
}
Toán tử instanceof
Toán tử này chỉ được sử dụng cho các biến tham chiếu đối tượng. Toán tử kiểm tra có hay không đối tượng là một kiểu cụ thể (kiểu class hoặc kiểu interface). Toán tử instanceof được viết như sau:
( Object reference variable ) instanceof (class/interface type)
Ví dụ:
public class Test {
public static void main(String args[]){
String name = "gpcoder";
// Kiểm tra name có phải là kiểu chuỗi hay không
boolean result = name instanceof String;
System.out.println( result ); // kết quả: true
}
}
7. Thứ tự ưu tiên của các toán tử
| 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 |
8. Thay đổi thứ tự ưu tiên của các toán tử
Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn ():
- Phần được giới hạn trong ngoặc đơn được thực hiện trước.
- Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài.
- Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng.
Ví dụ:
public class Test {
public static void main(String[] args) {
int a = 20;
int b = 5;
int c = 10;
<pre> System.out.println("a + b * c = " + (a + b * c));
System.out.println("(a + b) * c = " + ((a + b) * c));
System.out.println("a / b - c = " + (a / b - c));
System.out.println("a / (b - c) = " + (a / (b - c)));
}
}
Kết quả:
a + b * c = 70 (a + b) * c = 250 a / b - c = -6 a / (b - c) = -4
Related posts:
Lập trình đa luồng với CompletableFuture trong Java 8
A Guide to TreeSet in Java
Convert Hex to ASCII in Java
Introduction to PCollections
Java Program to Represent Graph Using Incidence Matrix
Creating Docker Images with Spring Boot
Request a Delivery / Read Receipt in Javamail
Spring Boot - Enabling Swagger2
New Features in Java 10
Spring Autowiring of Generic Types
Java Program to Perform LU Decomposition of any Matrix
Converting Between a List and a Set in Java
Spring Cloud Connectors and Heroku
Hướng dẫn Java Design Pattern – Service Locator
Comparing Two HashMaps in Java
Java Program to Implement IdentityHashMap API
Java Program to Implement Bit Array
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Implement Fermat Primality Test Algorithm
Java Program to Check whether Directed Graph is Connected using BFS
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
@Lookup Annotation in Spring
A Custom Data Binder in Spring MVC
Java Deep Learning Essentials - Yusuke Sugomori
Java Program to Implement the Bin Packing Algorithm
Java Program to Implement ConcurrentSkipListMap API
Spring Boot - Rest Controller Unit Test
Spring Boot Tutorial – Bootstrap a Simple Application
SOAP Web service: Authentication trong JAX-WS
Spring MVC and the @ModelAttribute Annotation
Guide to PriorityBlockingQueue in Java
The DAO with Spring and Hibernate