Java Operators
 Java provides a rich set of operators to manipulate
variables. We can divide all the Java operators into the
following groups:


• Assignment Operator

•Arithmetic Operators

•Unary Operators

• Equality and Relational Operators

•Conditional (Logical) Operators

•Bitwise and Bit Shift Operators
(1) Assignment Operator


     Simple Assignment Operator
      Syntax of using the assignment operator is:
      <variable> = <expression>;



     Compound Assignment Operator
      Syntax of using the compound assignment operator is:
      operand operation= operand
Compound assignment operators :

Operator Example    Equivalent Expression
+=       x += y;      x = (x + y);

-=      x -= y;       x = (x - y);

*=      x *= y;       x = (x * y);

/=      x /= y;       x = (x / y);

%=      x %= y;       x = (x % y);

&=      x &= y;       x = (x & y);

|=      x != y;       x = (x ! y);

^=      x ^= y;                 x = (x ^ y);

<<=     x <<= y;      x = (x << y);

>>=     x >>= y;      x = (x >> y);

>>>=    x >>>= y;     x = (x >>> y);
(2) Arithmetic Operators
 The symbols of arithmetic operators are given in a table:

Symbol Name of the Operator              Example

+         Additive Operator               n = n + 1;

-         Subtraction Operator            n = n - 1;

*         Multiplication Operator         n = n * 1;

/         Division Operator               n = n / 1;

%         Remainder Operator              n = n % 1;


 The "+" operator can also be used to concatenate (to join) the two strings
together.

 For example:
String str1 = "Concatenation of the first";
String str2 = "and second String";
String result = str1 + str2;
(3) Unary Operators
There are different types of unary operators :


 + Unary plus operator indicates positive value (however, numbers
are              positive without this)
Ex : int number = +1;
   - Unary minus operator negates an expression
Ex : number = - number;
 ++ Increment operator increments a value by 1
Ex : number = ++ number;
 -- Decrement operator decrements a value by 1
Ex : number = -- number;
 ! Logical compliment operator inverts a boolean value
(4) Equality and Relational Operators


Symbol Name of the Operator Example
==     Equal to                   a==b


!=     Not equal to               a!=b
>      Greater than               a>b


<      Less than                  a<b


>=     Greater than or equal to   a>=b


<=     Less than or equal to      a>=b
(5) Conditional   (Logical) Operators


Symbol   Name of the Operator

&        AND

&&       Conditional-AND

|        OR

||       Conditional-OR

!        NOT

?:       Ternary (shorthand for if-then-else statement)
ternary ("?:") operator

Java supports another conditional operator that is known as the ternary operator
"?:" and basically is used for an if-then-else as shorthand as

boolean expression ? operand1 : operand2;




  If we analyze this diagram then we find that, operand1 is returned, if
  the expression is true; otherwise operand2 is returned in case of false
  expression.
Lets have an example implementing some Logical operators:

class ConditionalOperator
{

 public static void main(String[] args)
{
  int x = 5;
  int y = 10, result=0;
  boolean bl = true;
  if((x == 5) && (x < y))
  System.out.println("value of x is "+x);
  if((x == y) || (y > 1))
  System.out.println("value of y is greater than the value of x");
 result = bl ? x : y;
  System.out.println("The returned value is "+result);
 }
}
Output

value of x is 5 is 5
value of y is greater than the value of x lue of y is greater than the value of x
The returned value is 5
(6) Bitwise and Bit Shift Operators
. There are different types of bitwise and bit shift operators available in
the Java language summarized in the table.


Symbol Name of the Operator              Example

~         Unary bitwise complement       ~op2

&         Bitwise AND                    op1 & op2

|         Bitwise inclusive OR           op1 | op2

^         Bitwise exclusive OR           op1 ^ op2

<<        Signed left shift              op1 << op2

>>        Signed right sift              op1 >> op2

>>>       Unsigned right shift           op1 >>> op2
I. Unary Bitwise Complement ("~") :
Lets use the table to understand bitwise complement
operation :

Operand Result

 0         1
 1         0
 1         0
 0         1

II. Bitwise    AND (&) :

Lets understand the AND operations using truth table:

(AND)
 A B      Result
 0 0      0
 1 0      0
 0 1      0
 1 1      1
III. Bitwise inclusive OR ( | ) :
Lets understand the inclusive OR operations using truth
table:
   (OR)
 A        B          Result
 0        0          0
 1        0          1
 0        1          1
 1        1          1


IV. Bitwise exclusive OR (^) :
Lets understand the exclusive OR operations using truth
table:
 A        B         Result
 0        0         0
 1        0         1
 0        1         1
 1        1         0
 Bit Shifts Operators:
I.   Signed Left Shift ("<<") :




This diagram shows that, all bits of the upper position were shifted to the left by
the distance of 1; and the Zero was shifted to the right most position. Thus the
result is returned as 11100.

Another expression "2<<2"; shifts all bits of the number 2 to the left placing a
zero to the right for each blank place. Thus the value 0010 becomes 1000 or 8 in
decimal.
II. Signed Right Shift (">>") :




This diagram shows that, all bits of the upper position were shifted to the right
distance specified by 1; Since the sign bit of this number indicates it as a positive
number so the 0 is shifted to the right most position. Thus the result is returned as
00011 or 3 in decimal.

Another expression "2>>2"; shifts all bits of the number 2 to the right placing a
zero to the left for each blank place. Thus the value 0010 becomes 0000 or 0 in
decimal.
III. Unsigned Right Shift (">>>") :


For example, the expression "14>>>2"; shifts all bits of the
number 14 to the right placing a zero to the left for each blank
place Thus the value 1110 becomes 0011 or 3 in decimal.
Operator Precedence

Operators                     Precedence

array index & parentheses     [] ( )
access object                 .
postfix                       expr++ expr--
unary                         ++expr --expr +expr -expr ~ !
multiplicative                * / %
additive                      + -
bit shift                     << >> >>>
relational                    < > <= >=
equality                      == !=
bitwise AND                   &
bitwise exclusive OR          ^
bitwise inclusive OR          |
logical AND                   &&
logical OR                    ||
ternary                       ?:
assignment                   = += -= *= /= %= &= ^= |=        <<= >>= >> >=
 Lets see an example that evaluates an arithmetic
expression according to the precedence order.


class PrecedenceDemo
{
    public static void main(String[] args)
{
    int a = 6;
    int b = 5;
    int c = 10;
    float rs = 0;
    rs = a + (++b)* ((c / a)* b);
    System.out.println("The result is:" + rs);
    }
}
 The expression "a+(++b)*((c/a)*b)" is evaluated      from right
to left. Its evaluation order depends upon the precedence order of
the operators. It is shown below:

(++b)                a + (++b)*((c/a)*b)
(c/a)                a+ (++b)*((c/a)*b)
(c/a)*b              a + (++b)*((c/a)* b)
(++b)*((c/a)*b)      a + (++b)*((c/a)* b)
a+(++b)*((c/a)*b)    a+(++b)*((c/a)*b)


Output

The result is:42.0
Java 2

Java 2

  • 1.
  • 2.
     Java providesa rich set of operators to manipulate variables. We can divide all the Java operators into the following groups: • Assignment Operator •Arithmetic Operators •Unary Operators • Equality and Relational Operators •Conditional (Logical) Operators •Bitwise and Bit Shift Operators
  • 3.
    (1) Assignment Operator  Simple Assignment Operator Syntax of using the assignment operator is: <variable> = <expression>;  Compound Assignment Operator Syntax of using the compound assignment operator is: operand operation= operand
  • 4.
    Compound assignment operators: Operator Example Equivalent Expression += x += y; x = (x + y); -= x -= y; x = (x - y); *= x *= y; x = (x * y); /= x /= y; x = (x / y); %= x %= y; x = (x % y); &= x &= y; x = (x & y); |= x != y; x = (x ! y); ^= x ^= y; x = (x ^ y); <<= x <<= y; x = (x << y); >>= x >>= y; x = (x >> y); >>>= x >>>= y; x = (x >>> y);
  • 5.
    (2) Arithmetic Operators The symbols of arithmetic operators are given in a table: Symbol Name of the Operator Example + Additive Operator n = n + 1; - Subtraction Operator n = n - 1; * Multiplication Operator n = n * 1; / Division Operator n = n / 1; % Remainder Operator n = n % 1;  The "+" operator can also be used to concatenate (to join) the two strings together.  For example: String str1 = "Concatenation of the first"; String str2 = "and second String"; String result = str1 + str2;
  • 6.
    (3) Unary Operators Thereare different types of unary operators :  + Unary plus operator indicates positive value (however, numbers are positive without this) Ex : int number = +1;  - Unary minus operator negates an expression Ex : number = - number;  ++ Increment operator increments a value by 1 Ex : number = ++ number;  -- Decrement operator decrements a value by 1 Ex : number = -- number;  ! Logical compliment operator inverts a boolean value
  • 7.
    (4) Equality andRelational Operators Symbol Name of the Operator Example == Equal to a==b != Not equal to a!=b > Greater than a>b < Less than a<b >= Greater than or equal to a>=b <= Less than or equal to a>=b
  • 8.
    (5) Conditional (Logical) Operators Symbol Name of the Operator & AND && Conditional-AND | OR || Conditional-OR ! NOT ?: Ternary (shorthand for if-then-else statement)
  • 9.
    ternary ("?:") operator Javasupports another conditional operator that is known as the ternary operator "?:" and basically is used for an if-then-else as shorthand as boolean expression ? operand1 : operand2; If we analyze this diagram then we find that, operand1 is returned, if the expression is true; otherwise operand2 is returned in case of false expression.
  • 10.
    Lets have anexample implementing some Logical operators: class ConditionalOperator { public static void main(String[] args) { int x = 5; int y = 10, result=0; boolean bl = true; if((x == 5) && (x < y)) System.out.println("value of x is "+x); if((x == y) || (y > 1)) System.out.println("value of y is greater than the value of x"); result = bl ? x : y; System.out.println("The returned value is "+result); } }
  • 11.
    Output value of xis 5 is 5 value of y is greater than the value of x lue of y is greater than the value of x The returned value is 5
  • 12.
    (6) Bitwise andBit Shift Operators . There are different types of bitwise and bit shift operators available in the Java language summarized in the table. Symbol Name of the Operator Example ~ Unary bitwise complement ~op2 & Bitwise AND op1 & op2 | Bitwise inclusive OR op1 | op2 ^ Bitwise exclusive OR op1 ^ op2 << Signed left shift op1 << op2 >> Signed right sift op1 >> op2 >>> Unsigned right shift op1 >>> op2
  • 13.
    I. Unary BitwiseComplement ("~") : Lets use the table to understand bitwise complement operation : Operand Result 0 1 1 0 1 0 0 1 II. Bitwise AND (&) : Lets understand the AND operations using truth table: (AND) A B Result 0 0 0 1 0 0 0 1 0 1 1 1
  • 14.
    III. Bitwise inclusiveOR ( | ) : Lets understand the inclusive OR operations using truth table: (OR) A B Result 0 0 0 1 0 1 0 1 1 1 1 1 IV. Bitwise exclusive OR (^) : Lets understand the exclusive OR operations using truth table: A B Result 0 0 0 1 0 1 0 1 1 1 1 0
  • 15.
     Bit ShiftsOperators: I. Signed Left Shift ("<<") : This diagram shows that, all bits of the upper position were shifted to the left by the distance of 1; and the Zero was shifted to the right most position. Thus the result is returned as 11100. Another expression "2<<2"; shifts all bits of the number 2 to the left placing a zero to the right for each blank place. Thus the value 0010 becomes 1000 or 8 in decimal.
  • 16.
    II. Signed RightShift (">>") : This diagram shows that, all bits of the upper position were shifted to the right distance specified by 1; Since the sign bit of this number indicates it as a positive number so the 0 is shifted to the right most position. Thus the result is returned as 00011 or 3 in decimal. Another expression "2>>2"; shifts all bits of the number 2 to the right placing a zero to the left for each blank place. Thus the value 0010 becomes 0000 or 0 in decimal.
  • 17.
    III. Unsigned RightShift (">>>") : For example, the expression "14>>>2"; shifts all bits of the number 14 to the right placing a zero to the left for each blank place Thus the value 1110 becomes 0011 or 3 in decimal.
  • 18.
    Operator Precedence Operators Precedence array index & parentheses [] ( ) access object . postfix expr++ expr-- unary ++expr --expr +expr -expr ~ ! multiplicative * / % additive + - bit shift << >> >>> relational < > <= >= equality == != bitwise AND & bitwise exclusive OR ^ bitwise inclusive OR | logical AND && logical OR || ternary ?: assignment = += -= *= /= %= &= ^= |= <<= >>= >> >=
  • 19.
     Lets seean example that evaluates an arithmetic expression according to the precedence order. class PrecedenceDemo { public static void main(String[] args) { int a = 6; int b = 5; int c = 10; float rs = 0; rs = a + (++b)* ((c / a)* b); System.out.println("The result is:" + rs); } }
  • 20.
     The expression"a+(++b)*((c/a)*b)" is evaluated from right to left. Its evaluation order depends upon the precedence order of the operators. It is shown below: (++b) a + (++b)*((c/a)*b) (c/a) a+ (++b)*((c/a)*b) (c/a)*b a + (++b)*((c/a)* b) (++b)*((c/a)*b) a + (++b)*((c/a)* b) a+(++b)*((c/a)*b) a+(++b)*((c/a)*b) Output The result is:42.0