Operatörens företräde bestämmer i vilken ordning operatörerna i ett uttryck utvärderas.
Innan du börjar läsa den här artikeln bör du ha en grundläggande kunskap om Java-operatörer.
Ta en titt på uttalandet nedan:
int myInt = 12 - 4 * 2;
Vad blir värdet av myInt? Kommer det att vara (12 - 4)*2, det vill säga 16? Eller så blir det 12 - (4 * 2), det vill säga 4?
När två operatörer delar en gemensam operand, 4i detta fall, opereras operatören med högst företräde först.
I Java är företräde *högre än den för -. Därför utförs multiplikationen före subtraktion, och värdet på myInt blir 4.
Operatörens prioritetstabell
Tabellen nedan visar företräde för Java i Java; ju högre det visas i tabellen, desto högre är dess företräde.
Java Operator Precedence| Operatörer | Företräde | 
|---|---|
| ökning och minskning av postfix | ++ -- |  
| prefix steg och minskning, och unary | ++ -- + - ~ ! |  
| multiplikativ | * / % |  
| tillsats | + - |  
| flytta | << >> >>> |  
| relationellt | < > <= >= instanceof |  
| jämlikhet | == != |  
| bitvis OCH | & |  
| bitvis exklusivt ELLER | ^ |  
| bitvis inkluderande ELLER | | |  
| logisk OCH | && |  
| logisk ELLER | || |  
| ternära | ? : |  
| uppdrag | = += -= *= /= %=&= ^= |= <<= >>= >>>= |  
Exempel: Operatörens företräde
 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )
Utgång :
2
Operatörens företräde för prefixet ++är högre än för -subtraktionsoperatören. Därmed,
resultat = a - ++ c - ++ b;
är ekvivalent med
resultat = a - (++ c) - (++ b);
När du hanterar flera operatörer och operander i ett enda uttryck kan du använda parenteser som i exemplet ovan för tydlighetens skull. Uttrycket inom parentes utvärderas först.
Associativitet för operatörer i Java
Om ett uttryck har två operatorer med samma företräde utvärderas uttrycket utifrån dess associativitet (antingen från vänster till höger eller från höger till vänster). Låt oss ta ett exempel.
a = b = c;
Här tilldelas värdet på c variabel b. Då tilldelas värdet på b variabel a. Varför? Det beror på att associativiteten för = operator är från höger till vänster.
Tabellen nedan visar associativiteten hos Java-operatörer tillsammans med deras associativitet.
Java Operator Precedence and Associativity| Operatörer | Företräde | Associativitet | 
|---|---|---|
| ökning och minskning av postfix | ++ -- |  vänster till höger | 
| prefix steg och minskning, och unary | ++ -- + - ~ ! |  höger till vänster | 
| multiplikativ | * / % |  vänster till höger | 
| tillsats | + - |  vänster till höger | 
| flytta | << >> >>> |  vänster till höger | 
| relationellt | < > <= >= instanceof |  vänster till höger | 
| jämlikhet | == != |  vänster till höger | 
| bitvis OCH | & |  vänster till höger | 
| bitvis exklusivt ELLER | ^ |  vänster till höger | 
| bitvis inkluderande ELLER | | |  vänster till höger | 
| logisk OCH | && |  vänster till höger | 
| logisk ELLER | || |  vänster till höger | 
| ternära | ? : |  höger till vänster | 
| uppdrag | = += -= *= /= %=&= ^= |= <<= >>= >>>= |  höger till vänster | 
Du behöver inte memorera allt här. För det mesta är operatörernas företräde och associativitet meningsfullt i sig. Du kan alltid komma tillbaka till den här artikeln för referens när du är osäker. Du kan också använda parentes om du tror att det gör din kod lättare att förstå.








