The JavaTM Tutorial
Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form

Trail: Learning the Java Language
Lesson: Language Basics

Summary of Operators

Summary of Arithmetic Operators

The following table lists the basic arithmetic operators provided by the Java programming language. Except for +, which is also used to concatenate strings, these operators can be used only on numeric values.

Binary Arithmetic Operators
Operator Use Description
+ op1 + op2 Adds op1 and op2; also used to concatenate strings
- op1 - op2 Subtracts op2 from op1
* op1 * op2 Multiplies op1 by op2
/ op1 / op2 Divides op1 by op2
% op1 % op2 Computes the remainder of dividing op1 by op2

These short cut operators increment or decrement a number by one.

Shortcut Arithmetic Operators
Operator Use Description
++ op++ Increments op by 1; evaluates to the value of op before it was incremented
++ ++op Increments op by 1; evaluates to the value of op after it was incremented
-- op-- Decrements op by 1; evaluates to the value of op before it was decremented
-- --op Decrements op by 1; evaluates to the value of op after it was decremented

Here are the Java programming language's other arithmetic operators.

Unary Arithmetic Operators
Operator Use Description
+ +op Promotes op to int if it's a byte, short, or char
- -op Arithmetically negates op

Summary of Relational and Conditional Operators

Use these relational operators to determine the relationship between two values.

Relational Operators
Operator Use Description
> op1 > op2 Returns true if op1 is greater than op2
>= op1 >= op2 Returns true if op1 is greater than or equal to op2
< op1 < op2 Returns true if op1 is less than op2
<= op1 <= op2 Returns true if op1 is less than or equal to op2
== op1 == op2 Returns true if op1 and op2 are equal
!= op1 != op2 Returns true if op1 and op2 are not equal

You can use the following conditional operators to form multi-part decisions.

Conditional Operators
Operator Use Description
&& op1 && op2 Returns true if op1 and op2 are both true; conditionally evaluates op2
|| op1 || op2 Returns true if either op1 or op2 is true; conditionally evaluates op2
! !op Returns true if op is false
& op1 & op2 Returns true if op1 and op2 are both boolean and both true; always evaluates op1 and op2; if both operands are numbers, performs bitwise AND operation
| op1 | op2 Returns true if both op1 and op2 are boolean and either op1 or op2 is true; always evaluates op1 and op2; if both operands are numbers, performs bitwise inclusive OR operation
^ op1 ^ op2 Returns true if op1 and op2 are different — that is, if one or the other of the operands, but not both, is true

Summary of Shift and Logical Operators

Each shift operator shifts the bits of the left-hand operand over by the number of positions indicated by the right-hand operand. The shift occurs in the direction indicated by the operator itself.

Shift Operators
Operator Use Description
<< op1 << op2 Shift bits of op1 left by distance op2; fills with zero bits on the right-hand side
>> op1 >> op2 Shift bits of op1 right by distance op2; fills with highest (sign) bit on the left-hand side
>>> op1 >>> op2 Shift bits of op1 right by distance op2; fills with zero bits on the left-hand side

These operators perform logical functions on their operands.

Logical Operators
Operator Use Operation
& op1 & op2 Bitwise AND if both operands are numbers;
conditional AND if both operands are boolean
| op1 | op2 Bitwise OR if both operands are numbers;
conditional OR if both operands are boolean
^ op1 ^ op2 Bitwise exclusive OR (XOR)
~ ~op2 Bitwise complement

Summary of Assignment Operators

The basic assignment operator looks as follows and assigns the value of op2 to op1.
op1 = op2;

In addition to the basic assignment operation, the Java programming language defines these short cut assigment operators that perform an operation and an assignment using one operator.

Shortcut Assignment Operators
Operator Use Equivalent to
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2
*= op1 *= op2 op1 = op1 * op2
/= op1 /= op2 op1 = op1 / op2
%= op1 %= op2 op1 = op1 % op2
&= op1 &= op2 op1 = op1 & op2
|= op1 |= op2 op1 = op1 | op2
^= op1 ^= op2 op1 = op1 ^ op2
<<= op1 <<= op2 op1 = op1 << op2
>>= op1 >>= op2 op1 = op1 >> op2
>>>= op1 >>>= op2 op1 = op1 >>> op2

Summary of Other Operators

The Java programming language also supports these operators.

Other Operators
Operator Use Description
?: op1 ? op2 : op3 If op1 is true, returns op2. Otherwise, returns op3.
[] type [] Declares an array of unknown length, which contains type elements.
[] type[ op1 ] Creates and array with op1 elements. Must be used with the new operator.
[] op1[ op2 ] Accesses the element at op2 index within the array op1. Indices begin at 0 and extend through the length of the array minus one.
. op1.op2 Is a reference to the op2 member of op1.
() op1(params) Declares or calls the method named op1 with the specified parameters. The list of parameters can be an empty list. The list is comma-separated.
(type) (type) op1 Casts (converts) op1 to type. An exception will be thrown if the type of op1 is incompatible with type.
new new op1 Creates a new object or array. op1 is either a call to a constructor, or an array specification.
instanceof op1 instanceof op2 Returns true if op1 is an instance of op2


Previous Page Lesson Contents Next Page Start of Tutorial > Start of Trail > Start of Lesson Search
Feedback Form

Copyright 1995-2005 Sun Microsystems, Inc. All rights reserved.