OCA Java imtahan mövzuları

Understanding Java Operators

Java`da 3 tip operator mövcuddur:

  • unary
  • binary
  • ternary

Java`da operatorlar öncəlik sırasına (operator precedence) görə dəyərləndirilir və əgər eyni öncəlik sırasına məxsus iki operator bir sətirdə yer alarsa, o zaman hesablanma qaydası adətən soldan-sağa doğru icra edilir.

 

Table 1. Order of operator precedence*

Operator                      Symbols and examples
Post-unary operators  expression++, expression−−
Pre-unary operators  ++expression, −−expression
Other unary operators  +,  -,  !
Multiplication/Division/Modulus  *,  /,  %
Addition/Subtraction  +,  –
Shift operators  <<,  >>,  >>>
Relational operators  <,  >,  <=,  >=,  instanceof
Equal to/not equal to  ==,  !=
Logical operators  &,  ^,  |
Short-circuit logical operators  &&,  ||
Ternary operators boolean expression ? expression1 : expression2
Assignment operators  =,  +=,  -=,  *=,  /=,  %=,  &=,  ^=,  |=,  <<=,  >>=,  >>>= 

assignment operatoru digər operatorlardan fərqli olaraq soldan-sağa doğru deyil, sağdan-sola doğru hesablanır. Eyni bir sətirdə zəncirvari şəkildə bir neçə dəyişənə dəyər mənimsətmək mümkündür, bir şərtlə ki, həmin dəyişənlər əvvəlcədən elan edilmiş olsunlar. Məsələn, aşağıdakı kod compile olunmayacaq:

  • int a = b = c = 100;  // does not compile

Əgər b c dəyişənini əvvəlcədən elan etsək kod compile olunacaq:

  • int  b = 0, c = 0;
    int a = b = c = 100;

Aşağıdakı formada yazılış da səhv deyil:

  • int  b, c;  // Not initializing b and c here.
    int a = b = c = 100; // declaring a and initializing c, b, and a at the same time.

Sonuncu sətirdə ilk öncə c dəyişəninə dəyər mənimsədilir, daha sonra c`nin dəyəri b dəyişəninə mənimsədilir. Ən sonda isə a dəyişəninin dəyəri mənimsədilir.

Bütün aritmetik/riyazi operatorlar (arithmetic operators  ⇒  *, /, %, +, -)  boolean String tiplərindən başqa istənilən primitiv java tipinə tətbiq edilə bilər. Ancaq ++=  iki String dəyərini birləşdirmək üçün (concatenation) tətbiq edilə bilər.

  • String str = null + "k";
    System.out.println(str);    // output: nullk
    String str2 = null + null;  // DOES NOT COMPILE

Modul əməliyyatlarında ( % ), tutaq ki, bölünən (dividend) – y və bölən (divisor) – x olarsa:

  • y – müsbət ədəd olarsa: nəticə həmişə 0 ilə (x-1) aralığında olur;
  • y – mənfi ədəd olarsa: nəticə həmişə 0 ilə (-x+1) aralığında olur.
System.out.println(8%3);     // output:  2
System.out.println(-8%3);    // output: -2
System.out.println(8%-3);    // output:  2
System.out.println(-8%-3);   // output: -2

Nümunədən belə qərara gəlmək olar ki, bölənin (x) mənfi olub olmaması nəticəyə heç bir təsir göstərmir, ancaq bölünənin (y) qiymətini yoxlayır.

 

[topics lang=az]

 

 “OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808”, by J.Boyarsky & S.Selikoff

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.