logo

Operaterji v Javi

Java nudi številne vrste operaterjev, ki jih je mogoče uporabiti glede na potrebe. Razvrščeni so glede na funkcionalnost, ki jo zagotavljajo. V tem članku bomo spoznali operaterje Java in se naučili vseh njihovih vrst.

Kaj so operaterji Java?

Operatorji v Javi so simboli, ki se uporabljajo za izvajanje določenih operacij v Javi. Operaterji izvajajo naloge, kot so seštevanje, množenje itd., ki so videti enostavne, čeprav je izvedba teh nalog precej zapletena.

Vrste operaterjev v Javi

V Javi obstaja več vrst operaterjev, vsi so omenjeni spodaj:



  1. Aritmetični operatorji
  2. Unarni operatorji
  3. Operater dodelitve
  4. Relacijski operaterji
  5. Logični operatorji
  6. Ternarni operater
  7. Bitni operaterji
  8. Operatorji premika
  9. primerek operaterja

1. Aritmetični operatorji

Uporabljajo se za izvajanje preprostih aritmetičnih operacij na primitivnih tipih podatkov.

  • * : Množenje
  • / : Delitev
  • %: Modul
  • + : Dodatek
  • – : Odštevanje

primer:

Java
// Java Program to implement // Arithmetic Operators import java.io.*; // Drive Class class GFG {  // Main Function  public static void main (String[] args) {    // Arithmetic operators  int a = 10;  int b = 3;    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('a % b = ' + (a % b));    } }>

Izhod
a + b = 13 a - b = 7 a * b = 30 a / b = 3 a % b = 1>

2. Unarni operatorji

Unarni operaterji potrebujejo samo en operand. Uporabljajo se za povečanje, zmanjšanje ali zanikanje vrednosti.

  • – : Enarni minus , ki se uporablja za negiranje vrednosti.
  • + : Enarni plus označuje pozitivno vrednost (vendar so številke brez tega pozitivne). Izvede samodejno pretvorbo v int, ko je tip njegovega operanda byte, char ali short. To se imenuje unarno številčno napredovanje.
  • ++: Operator povečanja , ki se uporablja za povečanje vrednosti za 1. Obstajata dve različici operatorjev povečanja.
    • Postinkrement: Vrednost se najprej uporabi za izračun rezultata in se nato poveča.
    • Predprirast: Vrednost se najprej poveča, nato pa se izračuna rezultat.
  • – – : Operator zmanjšanja , ki se uporablja za zmanjšanje vrednosti za 1. Obstajata dve različici operaterjev zmanjšanja.
    • Postdekrement: Vrednost se najprej uporabi za izračun rezultata in se nato zmanjša.
    • Preddekrement: vrednost se najprej zmanjša, nato pa se izračuna rezultat.
  • ! : Logični ne operator , ki se uporablja za obračanje logične vrednosti.

primer:

Java
// Java Program to implement // Unary Operators import java.io.*; // Driver Class class GFG {  // main function  public static void main(String[] args)  {  // Interger declared  int a = 10;  int b = 10;  // Using unary operators  System.out.println('Postincrement : ' + (a++));  System.out.println('Preincrement : ' + (++a));  System.out.println('Postdecrement : ' + (b--));  System.out.println('Predecrement : ' + (--b));  } }>

Izhod
Postincrement : 10 Preincrement : 12 Postdecrement : 10 Predecrement : 8>

3. Operator dodelitve

'=' Operator dodelitve se uporablja za dodelitev vrednosti kateri koli spremenljivki. Ima asociativnost od desne proti levi, tj. vrednost, podana na desni strani operatorja, je dodeljena spremenljivki na levi, zato je treba vrednost desne strani deklarirati pred uporabo ali pa mora biti konstanta.

deterministični končni avtomati

Splošna oblika operatorja dodelitve je:

variable   =   value;>

V mnogih primerih lahko operator dodelitve kombiniramo z drugimi operatorji, da ustvarimo krajšo različico stavka, imenovano a Sestavljena izjava . Na primer, namesto a = a+5, lahko zapišemo a += 5.

  • += , za dodajanje levega operanda z desnim operandom in njegovo nato dodelitev spremenljivki na levi.
  • -= , za odštevanje desnega operanda od levega operanda in njegovo nato dodelitev spremenljivki na levi.
  • *= , za množenje levega operanda z desnim in ga nato dodelite spremenljivki na levi.
  • /= , za deljenje levega operanda z desnim in ga nato dodelite spremenljivki na levi.
  • %= , za dodeljevanje modula levega operanda z desnim operandom in nato dodeljevanje spremenljivki na levi.

primer:

Java
// Java Program to implement // Assignment Operators import java.io.*; // Driver Class class GFG {  // Main Function  public static void main(String[] args)  = 0b1100: ' + (f  }>

Izhod
f += 3: 10 f -= 2: 8 f *= 4: 32 f /= 3: 10 f %= 2: 0 f &= 0b1010: 0 f |= 0b1100: 12 f ^= 0b1010: 6 f <>= 1: 12 f>>>= 1: 6>>> 

4. Relacijski operaterji

Ti operatorji se uporabljajo za preverjanje razmerij, kot so enakost, večje in manjše. Po primerjavi vrnejo logične rezultate in se pogosto uporabljajo v stavkih zanke ter pogojnih stavkih if-else. Splošna oblika je,

Nekateri relacijski operaterji so-

  • ==, enako vrne true, če je leva stran enaka desni strani.
  • !=, ni enako vrne true, če leva stran ni enaka desni strani.
  • <, manj kot: vrne true, če je leva stran manjša od desne.
  • <=, manj kot ali enako vrne true, če je leva stran manjša ali enaka desni strani.
  • >, Večje od: vrne true, če je leva stran večja od desne.
  • >=, večje ali enako vrne true, če je leva stran večja ali enaka desni strani.

primer:

Java
// Java Program to implement // Relational Operators import java.io.*; // Driver Class class GFG {  // main function  public static void main(String[] args)  {  // Comparison operators  int a = 10;  int b = 3;  int c = 5;  System.out.println('a>b: ' + (a> b));  System.out.println('a + (a< b));  System.out.println('a>= b: ' + (a>= b));  System.out.println('a<= b: ' + (a <= b));  System.out.println('a == c: ' + (a == c));  System.out.println('a != c: ' + (a != c));  } }>

Izhod
a>b: res a = b: res a<= b: false a == c: false a != c: true>

5. Logični operatorji

Ti operaterji se uporabljajo za izvajanje operacij logičnega IN in logičnega ALI, tj. funkcij, podobnih vratom IN in vratom ALI v digitalni elektroniki. Ne pozabite, da drugi pogoj ni ovrednoten, če je prvi napačen, kar pomeni, da ima učinek kratkega stika. Obširno se uporablja za testiranje več pogojev za sprejemanje odločitev. Java ima tudi Logical NOT, ki vrne true, ko je pogoj false, in obratno

Pogojni operatorji so:

  • &&, logični IN: vrne true, ko sta oba pogoja resnična.
  • ||, logični ALI: vrne true, če je vsaj en pogoj resničen.
  • !, logično NE: vrne true, ko je pogoj napačen in obratno

primer:

abstraktni razred v Javi
Java
// Java Program to implemenet // Logical operators import java.io.*; // Driver Class class GFG {  // Main Function  public static void main (String[] args)  }>

Izhod
x && y: false x || y: true !x: false>

6. Ternarni operator

Ternarni operator je skrajšana različica stavka if-else. Ima tri operande in od tod tudi ime Ternary.

Splošna oblika je:

condition   ?   if true   :   if false>

Zgornji stavek pomeni, da če je pogoj ovrednoten kot resničen, potem izvedite stavke za »?«, drugače pa izvedite stavke za »:«.

primer:

Java
// Java program to illustrate // max of three numbers using // ternary operator. public class operators {  public static void main(String[] args)  {  int a = 20, b = 10, c = 30, result;  // result holds max of three  // numbers  result  = ((a>b)? (a> c) ? a : c : (b> c) ? b : c);  System.out.println('Največ tri številke = ' + rezultat);  } }>

Izhod
Max of three numbers = 30>

7. Bitni operaterji

Ti operaterji se uporabljajo za izvajanje manipulacije posameznih bitov števila. Uporabljajo se lahko s katerim koli celoštevilskim tipom. Uporabljajo se pri izvajanju operacij posodabljanja in poizvedovanja binarnih indeksiranih dreves.

  • &, bitni operater IN: vrne bit po bit IN vhodnih vrednosti.
  • |, bitni operator ALI: vrne bit po bit ALI vhodnih vrednosti.
  • ^, bitni operator XOR: vrne bit za bitom XOR vhodnih vrednosti.
  • ~, operator bitnega dopolnila: To je unarni operator, ki vrne predstavitev komplementa ena vhodne vrednosti, tj. z vsemi obrnjenimi biti.
Java
// Java Program to implement // bitwise operators import java.io.*; // Driver class class GFG {  // main function  public static void main(String[] args)    // Bitwise operators  int d = 0b1010;  int e = 0b1100;  System.out.println('d & e: ' + (d & e));  System.out.println('d  }>

Izhod
d & e: 8 d | e: 14 d ^ e: 6 ~d: -11 d <>1 : 6 in>>> 1 : 6>>> 

8. Operaterji premika

Ti operatorji se uporabljajo za premik bitov števila v levo ali desno, s čimer se število pomnoži ali deli z dve. Uporabimo jih lahko, ko moramo število pomnožiti ali deliti z dve. Splošna oblika -

<<, levi operator premika: premakne bite števila v levo in zaradi tega zapolni praznine, ki ostanejo z 0. Podoben učinek kot množenje števila s potenco dvojke.
  • >>, podpisani operator desnega premika: premakne bite števila v desno in posledično zapolni 0 na levih prazninah. Skrajni levi bit je odvisen od predznaka začetnega števila. Podoben učinek kot deljenje števila s potenco dvojke.
  • >>>, Nepodpisani operator desnega premika: premakne bite števila v desno in posledično zapolni 0 na levih prazninah. Skrajni levi bit je nastavljen na 0.
  • Java
    // Java Program to implement // shift operators import java.io.*; // Driver Class class GFG {  // main function  public static void main(String[] args)  {  int a = 10;    // using left shift  System.out.println('a<<1 : ' + (a << 1));    // using right shift  System.out.println('a>>1 : ' + (a>> 1));  } }>

    Izhod
    a<<1 : 20 a>>1 : 5>>

    9. primerek operatorja

    Primerek operatorja se uporablja za preverjanje tipa. Uporablja se lahko za preizkus, ali je predmet primerek razreda, podrazreda ali vmesnika. Splošna oblika -

    object   instance of   class/subclass/interface>
    Java
    // Java program to illustrate // instance of operator class operators {  public static void main(String[] args)  {  Person obj1 = new Person();  Person obj2 = new Boy();  // As obj is of type person, it is not an  // instance of Boy or interface  System.out.println('obj1 instanceof Person: '  + (obj1 instanceof Person));  System.out.println('obj1 instanceof Boy: '  + (obj1 instanceof Boy));  System.out.println('obj1 instanceof MyInterface: '  + (obj1 instanceof MyInterface));  // Since obj2 is of type boy,  // whose parent class is person  // and it implements the interface Myinterface  // it is instance of all of these classes  System.out.println('obj2 instanceof Person: '  + (obj2 instanceof Person));  System.out.println('obj2 instanceof Boy: '  + (obj2 instanceof Boy));  System.out.println('obj2 instanceof MyInterface: '  + (obj2 instanceof MyInterface));  } } class Person { } class Boy extends Person implements MyInterface { } interface MyInterface { }>

    Izhod
    obj1 instanceof Person: true obj1 instanceof Boy: false obj1 instanceof MyInterface: false obj2 instanceof Person: true obj2 instanceof Boy: true obj2 instanceof MyInterface: true>

    Prednost in asociativnost javanskih operaterjev

    Pravila prednosti in asociativna pravila se uporabljajo pri obravnavanju hibridnih enačb, ki vključujejo več kot eno vrsto operatorja. V takih primerih ta pravila določajo, kateri del enačbe je treba upoštevati najprej, saj je lahko za isto enačbo veliko različnih vrednotenj. Spodnja tabela prikazuje prednost operatorjev v padajočem vrstnem redu kot velikost, pri čemer zgornji del predstavlja najvišjo prednost, spodnji pa najnižjo prednost.

    Prednost in asociativnost operatorjev v Javi

    Zanimiva vprašanja o operaterjih Java

    1. Prednost in asociativnost:

    Pogosto pride do zmede, ko gre za hibridne enačbe, ki so enačbe z več operatorji. Problem je, kateri del najprej rešiti. V teh situacijah je treba upoštevati zlato pravilo. Če imata operatorja različno prednost, najprej rešite višjo prednost. Če imata enako prednost, rešujte po asociativnosti, torej od desne proti levi ali od leve proti desni. Razlaga spodnjega programa je dobro zapisana v komentarjih znotraj samega programa.

    Java
    public class operators {  public static void main(String[] args)  {  int a = 20, b = 10, c = 0, d = 20, e = 40, f = 30;  // precedence rules for arithmetic operators.  // (* = / = %)>(+ = -) // natisne a+(b/d) System.out.println('a+b/d = ' + (a + b / d));  // če je enaka prednost, se upoštevajo asociativna // pravila.  // e/f -> b*d -> a+(b*d) -> a+(b*d)-(e/f) System.out.println('a+b*d-e/f = ' + (a + b * d - e / f));  } }>

    Izhod
    a+b/d = 20 a+b*d-e/f = 219>

    2. Bodite prevajalnik:

    Prevajalnik v naših sistemih uporablja orodje lex za iskanje največjega ujemanja pri ustvarjanju žetonov. To ustvarja težave, če jih spregledamo. Na primer, razmislite o izjavi a=b+++c ; morda se zdi, da preveč bralcev povzroči napako prevajalnika. Toda ta izjava je popolnoma pravilna, saj je žeton, ki ga je ustvaril lex, a, =, b, ++, +, c. Zato ima ta stavek podoben učinek, da najprej dodeli b+c a in nato poveča b. Podobno je a=b++++++c; bi ustvaril napako, saj so ustvarjeni žetoni a, =, b, ++, ++, +, c. kar je pravzaprav napaka, saj za drugim unarnim operandom ni nobenega operanda.

    Java
    public class operators {  public static void main(String[] args)  {  int a = 20, b = 10, c = 0;  // a=b+++c is compiled as  // b++ +c  // a=b+c then b=b+1  a = b++ + c;  System.out.println('Value of a(b+c), '  + ' b(b+1), c = ' + a + ', ' + b  + ', ' + c);  // a=b+++++c is compiled as  // b++ ++ +c  // which gives error.  // a=b+++++c;  // System.out.println(b+++++c);  } }>

    Izhod
    Value of a(b+c), b(b+1), c = 10, 11, 0>

    3. Uporaba + nad ():

    Pri uporabi operatorja + znotraj system.out.println() seštejte z uporabo oklepaja. Če nekaj napišemo, preden naredimo seštevanje, potem pride do seštevanja nizov, kar pomeni, da asociativnost seštevanja poteka od leve proti desni, zato se nizu dodajo cela števila, ki najprej proizvedejo niz, objekti niza pa se združijo, ko uporabimo +. Zato lahko povzroči neželene rezultate.

    zemljevidi java
    Java
    public class operators {  public static void main(String[] args)  {  int x = 5, y = 8;  // concatenates x and y as  // first x is added to 'concatenation (x+y) = '  // producing 'concatenation (x+y) = 5'  // and then 8 is further concatenated.  System.out.println('Concatenation (x+y)= ' + x + y);  // addition of x and y  System.out.println('Addition (x+y) = ' + (x + y));  } }>

    Izhod
    Concatenation (x+y)= 58 Addition (x+y) = 13>

    Prednosti operaterjev v Javi

    Prednosti uporabe operaterjev v Javi so navedene spodaj:

    1. Ekspresivnost : Operatorji v Javi zagotavljajo jedrnat in berljiv način za izvajanje kompleksnih izračunov in logičnih operacij.
    2. Prihranek časa: Operaterji v Javi prihranijo čas z zmanjšanjem količine kode, potrebne za izvajanje določenih nalog.
    3. Izboljšana zmogljivost : Uporaba operaterjev lahko izboljša zmogljivost, ker so pogosto implementirani na ravni strojne opreme, zaradi česar so hitrejši od enakovredne kode Java.

    Slabosti operaterjev v Javi

    Slabosti operaterjev v Javi so navedene spodaj:

    1. Prednost operaterja: Operatorji v Javi imajo določeno prednost, kar lahko privede do nepričakovanih rezultatov, če se ne uporabljajo pravilno.
    2. Vrsta prisile : Java izvaja implicitne pretvorbe tipov pri uporabi operatorjev, kar lahko vodi do nepričakovanih rezultatov ali napak, če se ne uporabljajo pravilno.

    Pogosta vprašanja o operaterjih Java

    1. Kaj so operaterji v Javi s primerom?

    Operatorji so posebni simboli, ki se uporabljajo za izvajanje določenih operacij. Na primer, '+' se uporablja za seštevanje, kjer 5+4 vrne vrednost 9.