„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:
- Aritmetiniai operatoriai
- Unary operatoriai
- Užduočių operatorius
- Santykių operatoriai
- Loginiai operatoriai
- Trečias operatorius
- Bitiniai operatoriai
- Pamainos operatoriai
- 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švestisa>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švestisx && 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švestisMax 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 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
// 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.
Į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
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
- Išraiškingumas : „Java“ operatoriai suteikia glaustą ir įskaitomą būdą sudėtingiems skaičiavimams ir loginėms operacijoms atlikti.
- Laiką taupantis: „Java“ operatoriai taupo laiką sumažindami tam tikroms užduotims atlikti reikalingo kodo kiekį.
- 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:
- Operatoriaus pirmenybė: „Java“ operatoriai turi apibrėžtą pirmenybę, kuri gali sukelti netikėtų rezultatų, jei jie netinkamai naudojami.
- 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.