logo

Operatoriai Java

„Java“ siūlo daugybę operatorių tipų, kuriuos galima naudoti pagal poreikį. Jie klasifikuojami pagal jų teikiamas funkcijas. Šiame straipsnyje mes sužinosime apie Java operatorius ir sužinosime visus jų tipus.

Kas yra „Java“ operatoriai?

„Java“ operatoriai yra simboliai, naudojami konkrečioms „Java“ operacijoms atlikti. Operatoriai atlieka tokias užduotis kaip sudėtis, daugyba ir tt, kurios atrodo lengvos, nors jas įgyvendinti yra gana sudėtinga.



„Java“ operatorių tipai

„Java“ yra kelių tipų operatoriai, visi paminėti toliau:

  1. Aritmetiniai operatoriai
  2. Unary operatoriai
  3. Užduočių operatorius
  4. Santykių operatoriai
  5. Loginiai operatoriai
  6. Trečias operatorius
  7. Bitiniai operatoriai
  8. Pamainos operatoriai
  9. operatoriaus pavyzdys

1. Aritmetiniai operatoriai

Jie naudojami atlikti paprastas aritmetines operacijas su primityviais duomenų tipais.

  • * : Daugyba
  • / : Padalinys
  • %: Modulis
  • + : Papildymas
  • – : Atimtis

Pavyzdys:



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));    } }>

Išvestis
a + b = 13 a - b = 7 a * b = 30 a / b = 3 a % b = 1>

2. Unariniai operatoriai

Unariniams operatoriams reikia tik vieno operando. Jie naudojami norint padidinti, sumažinti arba paneigti vertę.

  • – : Vienetinis minusas , naudojamas reikšmėms paneigti.
  • + : Vienetinis pliusas nurodo teigiamą reikšmę (tačiau skaičiai yra teigiami be šios). Jis atlieka automatinį konvertavimą į int, kai jo operando tipas yra baitas, simbolis arba trumpasis. Tai vadinama vienetine skaitmenine reklama.
  • ++: Prieaugio operatorius , naudojamas reikšmei padidinti 1. Yra dvi didinimo operatorių rūšys.
    • Po prieaugio: Reikšmė pirmiausia naudojama rezultatui apskaičiuoti, o tada padidinama.
    • Išankstinis padidinimas: Pirmiausia vertė padidinama, o tada apskaičiuojamas rezultatas.
  • – – : Sumažinimo operatorius , naudojamas reikšmei sumažinti 1. Yra dvi mažinimo operatorių rūšys.
    • Po sumažinimo: Reikšmė pirmiausia naudojama rezultatui apskaičiuoti, o tada mažinama.
    • Išankstinis sumažinimas: vertė pirmiausia sumažinamas, o tada apskaičiuojamas rezultatas.
  • ! : Logiška, o ne operatorius , naudojamas loginei vertei apversti.

Pavyzdys:

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));  } }>

Išvestis
Postincrement : 10 Preincrement : 12 Postdecrement : 10 Predecrement : 8>

3. Priskyrimo operatorius

'=' Priskyrimo operatorius naudojamas reikšmei priskirti bet kuriam kintamajam. Ji turi asociatyvumą iš dešinės į kairę, t. y. dešinėje operatoriaus pusėje pateikta reikšmė priskiriama kairėje esančiam kintamajam, todėl dešinės pusės reikšmė turi būti deklaruota prieš naudojant arba turi būti konstanta.



Bendras priskyrimo operatoriaus formatas yra toks:

variable   =   value;>

Daugeliu atvejų priskyrimo operatorius gali būti derinamas su kitais operatoriais, kad būtų sukurta trumpesnė teiginio versija, vadinama a Sudėtinis pareiškimas . Pavyzdžiui, vietoj a = a+5, galime parašyti a += 5.

  • += , norėdami pridėti kairįjį operandą su dešiniuoju operandu ir priskirti jį kintamajam kairėje.
  • -= , norėdami atimti dešinįjį operandą iš kairiojo operando ir priskirti jį kintamajam kairėje.
  • *= , padauginti kairįjį operandą su dešiniuoju ir priskirti jį kintamajam kairėje.
  • /= , skirtas kairiojo operando dalijimui iš dešiniojo ir priskirti jį kintamajam kairėje.
  • %= , kairiojo operando moduliui priskirti dešiniuoju operandu, o tada priskirti jį kintamajam kairėje.

Pavyzdys:

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

Išvestis
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. Santykių operatoriai

Šie operatoriai naudojami patikrinti, ar nėra tokių santykių kaip lygybė, didesnis nei ir mažesnis nei. Po palyginimo jie pateikia loginius rezultatus ir yra plačiai naudojami cikliniuose sakiniuose, taip pat sąlyginiuose if-else teiginiuose. Bendras formatas yra

Kai kurie reliaciniai operatoriai yra

  • ==, lygus grąžina tiesa, jei kairioji pusė lygi dešiniajai.
  • !=, Nelygu grąžina tiesa, jei kairioji pusė nėra lygi dešiniajai.
  • <, mažiau nei: grąžina tiesa, jei kairioji pusė yra mažesnė už dešinę.
  • <=, mažesnis arba lygus grąžina tiesa, jei kairioji pusė yra mažesnė arba lygi dešiniajai.
  • >, Didesnis nei: grąžina true, jei kairioji pusė yra didesnė už dešinę.
  • >=, Didesnis nei arba lygus grąžina tiesa, jei kairioji pusė yra didesnė arba lygi dešiniajai.

Pavyzdys:

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));  } }>

Išvestis
a>b: tiesa a = b: tiesa a<= b: false a == c: false a != c: true>

5. Loginiai operatoriai

Šie operatoriai naudojami loginėms IR ir loginėms ARBA operacijoms atlikti, t. y. funkcijai, panašiai į AND vartus ir ARBA vartus skaitmeninėje elektronikoje. Reikia nepamiršti, kad antroji sąlyga neįvertinama, jei pirmoji yra klaidinga, t. y. ji turi trumpojo jungimo efektą. Plačiai naudojamas norint patikrinti kelias sprendimo priėmimo sąlygas. Java taip pat turi Logical NOT, kuri grąžina true, kai sąlyga yra klaidinga ir atvirkščiai

Sąlyginiai operatoriai yra:

  • &&, Loginis IR: grąžina teisingą, kai abi sąlygos yra teisingos.
  • ||, Loginis ARBA: grąžina tiesa, jei bent viena sąlyga yra teisinga.
  • !, Logiška NE: grąžina teisingą, kai sąlyga yra klaidinga, ir atvirkščiai

Pavyzdys:

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

Išvestis
x && y: false x || y: true !x: false>

6. Trinaris operatorius

Trečias operatorius yra trumpinė if-else teiginio versija. Jis turi tris operandus, taigi ir pavadinimą „Ternary“.

Bendras formatas yra toks:

condition   ?   if true   :   if false>

Aukščiau pateiktas teiginys reiškia, kad jei sąlygos įvertinimas yra teisingas, tada vykdykite teiginius po „?“, kitu atveju vykdykite teiginius po „:“.

Pavyzdys:

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('Daugiausia trijų skaičių = ' + rezultatas);  } }>>  
Išvestis
Max of three numbers = 30>

7. Bitiniai operatoriai

Šie operatoriai naudojami manipuliuoti atskirais skaičiaus bitais. Jie gali būti naudojami su bet kuriuo sveikųjų skaičių tipu. Jie naudojami atliekant dvejetainių indeksuotų medžių atnaujinimo ir užklausų operacijas.

  • &, Bitų IR operatorius: grąžina po bitą IR įvesties reikšmes.
  • |, Bitų ARBA operatorius: grąžina po bitą ARBA įvesties reikšmes.
  • ^, bitinis XOR operatorius: grąžina įvesties reikšmes bitais po bito XOR.
  • ~, Bitwise Complement operatorius: Tai unarinis operatorius, kuris grąžina įvesties vertės komplemento atvaizdą, t. y., kai visi bitai yra apversti.
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  }>

Išvestis Šie operatoriai naudojami skaičiaus bitams perkelti į kairę arba į dešinę, taip padauginant arba padalant skaičių atitinkamai iš dviejų. Jie gali būti naudojami, kai turime padauginti arba padalyti skaičių iš dviejų. Bendras formatas -

<<, Kairės poslinkio operatorius: perkelia skaičiaus bitus į kairę ir dėl to likusiose tuštumose užpildomas 0. Panašus efektas kaip skaičių padauginus iš dviejų galių.
  • >>, pasirašytas dešinės pamainos operatorius: perkelia skaičiaus bitus į dešinę ir dėl to užpildo 0 tuščiose vietose. Kairiausias bitas priklauso nuo pradinio skaičiaus ženklo. Panašus efektas, kaip skaičių dalijant tam tikra galia iš dviejų.
  • >>>, nepasirašytas dešinės pamainos operatorius: perkelia skaičiaus bitus į dešinę ir dėl to užpildo 0 tuščiose vietose. Kairysis bitas nustatytas į 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));  } }>>  
    Išvestis
    a<<1 : 20 a>>1 : 5>>

    9. instanceof operator

    Operatoriaus egzempliorius naudojamas tipo tikrinimui. Jis gali būti naudojamas norint patikrinti, ar objektas yra klasės, poklasio ar sąsajos pavyzdys. Bendras formatas -


    Išvestis
    obj1 instanceof Person: true obj1 instanceof Boy: false obj1 instanceof MyInterface: false obj2 instanceof Person: true obj2 instanceof Boy: true obj2 instanceof MyInterface: true>

    „Java“ operatorių pirmenybė ir asociatyvumas

    Pirmenybės ir asociatyvinės taisyklės naudojamos, kai kalbama apie hibridines lygtis, kuriose dalyvauja daugiau nei vieno tipo operatoriai. Tokiais atvejais šios taisyklės nustato, į kurią lygties dalį reikia atsižvelgti pirmiausia, nes gali būti daug skirtingų tos pačios lygties vertinimų. Žemiau esančioje lentelėje pavaizduota operatorių pirmenybė mažėjančia tvarka, o viršuje – didžiausias, o apačioje – mažiausias.

    „Java“ operatorių pirmenybė ir asociatyvumas

    Įdomūs klausimai apie Java operatorius

    1. Pirmenybė ir asociatyvumas:

    Dažnai kyla painiavos, kai kalbama apie hibridines lygtis, kurios yra lygtys, turinčios kelis operatorius. Problema ta, kurią dalį pirmiausia išspręsti. Tokiose situacijose reikia laikytis auksinės taisyklės. Jei operatoriai turi skirtingą pirmenybę, pirmiausia išspręskite aukštesnę pirmenybę. Jei jų pirmenybė yra tokia pati, spręskite pagal asociatyvumą, ty iš dešinės į kairę arba iš kairės į dešinę. Toliau pateiktos programos paaiškinimas yra gerai parašytas pačios programos komentaruose.

    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.  // (* = / = %)>(+ = -) // spausdina a+(b/d) System.out.println('a+b/d = ' + (a + b / d));  // jei pirmenybė ta pati, tada laikomasi asociatyvinių // taisyklių.  // 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));  } }>>  
    Išvestis
    a+b/d = 20 a+b*d-e/f = 219>

    2. Būkite kompiliatorius:

    Mūsų sistemų kompiliatorius naudoja lex įrankį, kad generuodamas prieigos raktus atitiktų didžiausią atitiktį. Tai sukuria šiek tiek problemų, jei nepaisoma. Pavyzdžiui, apsvarstykite teiginį a=b+++c ; gali atrodyti, kad per daug skaitytojų sukuria kompiliatoriaus klaidą. Tačiau šis teiginys yra visiškai teisingas, nes lex sukurtas ženklas yra a, =, b, ++, +, c. Todėl šis teiginys turi panašų poveikį: pirmiausia b+c priskiriamas a, o po to b didėja. Panašiai a=b+++++c; sugeneruotų klaidą, nes generuojami žetonai yra a, =, b, ++, ++, +, c. o tai iš tikrųjų yra klaida, nes po antrojo vienareikšmio operando nėra.

    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);  } }>

    Išvestis Kai viduje naudojate + operatorių system.out.println() būtinai pridėkite naudodami skliaustus. Jei ką nors parašome prieš darydami sudėjimą, tada įvyksta eilučių pridėjimas, tai yra, pridėjimo asociatyvumas yra iš kairės į dešinę, taigi sveikieji skaičiai pridedami prie eilutės, kuri pirmiausia sukuria eilutę, o eilutės objektai sujungiami naudojant +. Todėl tai gali sukelti nepageidaujamų rezultatų.

    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));  } }>

    Išvestis
    Concatenation (x+y)= 58 Addition (x+y) = 13>

    „Java“ operatorių pranašumai

    „Java“ operatorių naudojimo pranašumai yra paminėti toliau:

    ex iš vartotojo vardo
    1. Išraiškingumas : „Java“ operatoriai suteikia glaustą ir įskaitomą būdą sudėtingiems skaičiavimams ir loginėms operacijoms atlikti.
    2. Laiką taupantis: „Java“ operatoriai taupo laiką sumažindami tam tikroms užduotims atlikti reikalingo kodo kiekį.
    3. Patobulintas našumas : Naudojant operatorius galima pagerinti našumą, nes jie dažnai įdiegiami aparatūros lygiu, todėl jie yra greitesni nei atitinkamas Java kodas.

    „Java“ operatorių trūkumai

    „Java“ operatorių trūkumai yra paminėti toliau:

    1. Operatoriaus pirmenybė: „Java“ operatoriai turi apibrėžtą pirmenybę, kuri gali sukelti netikėtų rezultatų, jei jie netinkamai naudojami.
    2. Tipas prievarta : „Java“ atlieka numanomus tipo konvertavimus, kai naudoja operatorius, o tai gali sukelti netikėtų rezultatų arba klaidų, jei naudojama netinkamai.

    DUK „Java“ operatoriuose

    1. Kas yra operatoriai Java su pavyzdžiu?

    Operatoriai yra specialūs simboliai, naudojami tam tikroms operacijoms atlikti. Pavyzdžiui, „+“ naudojamas pridėjimui, kai 5+4 grąžins reikšmę 9.