Hi Rahul,
'precedence' refers to the priorities given to the various operators. When a
Java expression is evaluated operator precedence rules are applied; similar to the way Math expressions are evaluated. For example, parantheses are evaluated first, then mulitiplication/division, then addition, subtraction, etc.
For example, in the expression <code>5 + 3 * 2</code>, mulitiplication has higher precedence than addition, so the expression is evaluated as <code>5 + 6</code> with a result of 11.
If parantheses are used <code>(5 + 3) * 2</code>, the portion within the parantheses is evaluated first <code> 8 * 2</code> with a result of 16.
'associativity' refers to the order in which operators are evaluated when operators have the same level of precedence. In Java, expressions are evaluated left-to-right, except for assignments, which are evaluated right-to-left.
For example, <code>5 - 3 + 2</code> is evaluated left-to-right <code> 2 + 2 </code> with a result of 4.
Assignment is right-to-left, <code> a = b = c = 5</code> first 5 is assigned to 'c', then the value of 'c' is assigned to 'b' and then the value of 'b' is assigned to 'a', with the result, a = 5.
For more information on how Java evaluates expressions read
JSL §15.7 Hope that helps.
------------------
Jane Griscti
Sun Certified Programmer for the Java� 2 Platform