logo

Najveća prednost u Javi

Kada govorimo o prednosti u Javi, operator je prvi na umu. U Javi su definirana određena pravila za određivanje redoslijeda kojim se procjenjuju operatori u izrazu. Prioritet operatora je koncept određivanja grupe pojmova u izrazu. Prednost operatora je odgovorna za procjenu izraza. U Java , zagrade() i Niz indeks[] imaju najveću prednost u Javi. Na primjer, zbrajanje i oduzimanje imaju veću prednost od operatora lijevog pomaka i desnog pomaka.

Najveća prednost u Javi

Ispod je definirana tablica u kojoj se operator s najnižim prioritetom prikazuje na vrhu.

Prednost Operater Tip Asocijativnost
1) =
+=
-=
*=
/=
%=
Zadatak
Zadatak sabiranja
Zadatak oduzimanja
Zadatak množenja
Dodjela podjele
Dodjela modula
S desna na lijevo
2) ? : Trojni kondicional S desna na lijevo
3) || Logički ILI S lijeva nadesno
4) && Logično I S lijeva nadesno
5) | Uključivo ILI po bitovima S lijeva nadesno
6) ^ Bitno isključivi OR S lijeva nadesno
7) i Bitno I S lijeva nadesno
8) !=
==
Relacijska nije jednaka
Relacijska je jednaka
S lijeva nadesno
9) <
<=
>
>=
instanceof
Relacijski manje od
Relacijska manja ili jednaka
Relacijski veći od
Relacijski veći ili jednak
Usporedba tipa (samo objekti)
S lijeva nadesno
10) >>
<<
>>>
Pomak udesno s predznakom
Pomak ulijevo po bitovima
Pomak udesno po bitovima s nultom ekstenzijom
S lijeva nadesno
jedanaest) -
+
Oduzimanje
Dodatak
S lijeva nadesno
12) *
/
%
Množenje
Podjela
Modul
S lijeva nadesno
13) -
+
~
!
(tip)
Unarni minus
Unarni plus
Unarni bitni komplement
Unarna logička negacija
Unarni prikaz tipa
S desna na lijevo
14) ++
--
Unarni postinkrement
Unarni postdekrement
S desna na lijevo
petnaest) ·
()
[]
Operator točka
Zagrade
Indeks niza
S lijeva nadesno

Redoslijed prvenstva

Kada dva operatora dijele jedan operand, prvi ide operator s najvećim prvenstvom. Na primjer, x + y * z tretira se kao x + (y * z), dok se x * y + z tretira kao (x * y) + z jer operator * ima najveću prednost u usporedbi s operatorom +.

čitati iz csv java

Asocijativnost

Asocijativnost je koncept koji se odnosi na operatore koji se primjenjuju kada dva operatora s istim prvenstvom dolaze u izraz. Koncept asocijativnosti vrlo je koristan za izlazak iz te situacije. Pretpostavimo da imamo izraz a + b - c (operatori + i - imaju isti prioritet) , a ovaj izraz će se tretirati kao (a + (b - c)) jer su ti operatori zdesna nalijevo asocijativni. S druge strane, a+++--b+c++ će se tretirati kao ((a++)+((--b)+(c++))) jer su unarni operatori postinkrementiranja i dekrementiranja asocijativni desno prema lijevo.

Dolje je definiran primjer da biste razumjeli kako se izraz procjenjuje pomoću redoslijeda prvenstva i asocijativnosti?

Izraz: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3

Riješenje:

1) U gornjem izrazu, operator najvišeg prvenstva je () . Dakle, zagrada ide prva i prva izračunava.

virtualna memorija

x = 4 / 2 + 8 * 4 - 7 % 3

2) Sada, /, * i % operatori imaju isti prioritet i najviši od + i - Ovdje koristimo koncept asocijativnosti za njihovo rješavanje. Asocijativi ovih operatora su s lijeva na desno. Tako, / operator ide prvi, a zatim * i % istovremeno.

x = 2 + 8 * 4 - 7 % 3

x = 2 + 32 - 7 % 3

x = 2 + 32 - 1

3) Sada, + i - oba operatora također imaju isti prioritet, a asocijativnost ovih operatora udesno. Tako, + operater će ići prvi, a zatim - će ići.

oštar kut

x = 34 - 1

x = 33

HighestPrecedence.java

 //import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } } 

Izlaz

Najveća prednost u Javi