Java Essentials: Uitgebreide Gids voor Kern Operators
Java biedt een rijke set operators om variabelen te manipuleren. Alle Java operators vallen in deze groepen:
- Arithmetic Operators
- Relational Operators
- Bitwise Operators
- Logical Operators
- Assignment Operators
- Misc Operators
Arithmetic Operators
Gebruikt in wiskundige expressies zoals in algebra. Stel A=10, B=20:
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
| + (Addition) | Telt waarden aan weerskanten op | A + B = 30 |
| - (Subtraction) | Trekt rechter operand van linker operand af | A - B = -10 |
| * (Multiplication) | Vermenigvuldigt waarden | A * B = 200 |
| / (Division) | Deelt linker operand door rechter operand | B / A = 2 |
| % (Modulus) | Deelt en retourneert rest | B % A = 0 |
| ++ (Increment) | Verhoogt operand met 1 | B++ = 21 |
| -- (Decrement) | Verlaagt operand met 1 | B-- = 19 |
Relational Operators
Ondersteund door Java. A=10, B=20:
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
| == (gelijk aan) | Controleert of twee operanden gelijk zijn | (A == B) is false |
| != (ongelijk aan) | Controleert of twee operanden ongelijk zijn | (A != B) is true |
| > (groter dan) | Linker operand groter dan rechter | (A > B) is false |
| < (kleiner dan) | Linker operand kleiner dan rechter | (A < B) is true |
| >= (groter of gelijk) | Linker operand groter of gelijk | (A >= B) is false |
| <= (kleiner of gelijk) | Linker operand kleiner of gelijk | (A <= B) is true |
Bitwise Operators
Toepasbaar op integer types: long, int, short, char, byte. Werken bit-voor-bit. a=60 (0011 1100), b=13 (0000 1101):
a&b = 0000 1100 (12) a|b = 0011 1101 (61) a^b = 0011 0001 (49) ~a = 1100 0011 (-61 in 2's complement)
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
| & (bitwise AND) | Kopieert bit als in beide operanden | (A & B) = 12 |
| | (bitwise OR) | Kopieert bit als in één van beide | (A | B) = 61 |
| ^ (bitwise XOR) | Kopieert bit als in één maar niet beide | (A ^ B) = 49 |
| ~ (bitwise complement) | Unary, 'flipped' bits | (~A) = -61 |
| << (left shift) | Linker operandwaarde verschuift links | A << 2 = 240 |
| >> (right shift) | Linker operandwaarde verschuift rechts | A >> 2 = 15 |
| >>> (zero fill right shift) | Verschuift rechts, vult met nullen | A >>> 2 = 15 |
Logical Operators
Boolean A=true, B=false:
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
| && (logical AND) | True als beide operanden non-zero | (A && B) = false |
| || (logical OR) | True als één van beide non-zero | (A || B) = true |
| ! (logical NOT) | Keert logische state om | !(A && B) = true |
Assignment Operators
| Operator | Beschrijving | Voorbeeld |
|---|---|---|
| = | Simpele toewijzing | C = A + B |
| += | Add AND assign | C += A ≡ C = C + A |
| -= | Subtract AND assign | C -= A ≡ C = C - A |
| *= | Multiply AND assign | C *= A ≡ C = C * A |
| /= | Divide AND assign | C /= A ≡ C = C / A |
| %= | Modulus AND assign | C %= A ≡ C = C % A |
| <<= | Left shift AND assign | C <<= 2 ≡ C = C << 2 |
| >>= | Right shift AND assign | C >>= 2 ≡ C = C >> 2 |
| &= | Bitwise AND assign | C &= 2 ≡ C = C & 2 |
| ^= | Bitwise XOR assign | C ^= 2 ≡ C = C ^ 2 |
| |= | Bitwise OR assign | C |= 2 ≡ C = C | 2 |
Miscellaneous Operators
Conditional Operator ( ? : )
Ook ternary operator genoemd. Drie operanden, evalueert Boolean expressies. Beslist welke waarde aan variabele toegewezen wordt.
variable x = (expressie) ? waarde als true : waarde als false
Voorbeeld
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); // 30
b = (a == 10) ? 20 : 30;
System.out.println("Value of b is : " + b); // 20
}
}
Output
Value of b is : 30 Value of b is : 20
instanceof Operator
Alleen voor object referentie variabelen. Controleert of object van een bepaald type (class/interface) is.
(Object reference variable) instanceof (class/interface type)
Als object IS-A check doorstaat voor type aan rechterkant, resultaat is true.
Voorbeeld
public class Test {
public static void main(String args[]) {
String name = "James";
boolean result = name instanceof String;
System.out.println(result); // true
}
}
Output
true
Werkt ook voor assignment compatible types:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println(result); // true
}
}
Output
true
Precedentie van Java Operators
Operator precedentie bepaalt groepering in expressies. Hogere precedentie = eerder geëvalueerd. Bijv. * heeft hogere precedentie dan +: x = 7 + 3 * 2 → x = 13, niet 20.
| Categorie | Operator | Associativiteit |
|---|---|---|
| Postfix | expr++ expr-- | Links naar rechts |
| Unary | ++expr --expr +expr -expr ~ ! | Rechts naar links |
| Multiplicative | * / % | Links naar rechts |
| Additive | + - | Links naar rechts |
| Shift | << >> >>> | Links naar rechts |
| Relational | < > <= >= instanceof | Links naar rechts |
| Equality | == != | Links naar rechts |
| Bitwise AND | & | Links naar rechts |
| Bitwise XOR | ^ | Links naar rechts |
| Bitwise OR | | | Links naar rechts |
| Logical AND | && | Links naar rechts |
| Logical OR | || | Links naar rechts |
| Conditional | ?: | Rechts naar links |
| Assignment | = += -= *= /= %= ^= |= <<= >>= >>>= | Rechts naar links |
Wat Volgt?
Volgende hoofdstuk: loop control in Java. Verschillende lussen en hun gebruik in programmaontwikkeling.
Java
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java Input & Output beheersen: printen, lezen en formatteren
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList